今日は Java で正規表現を使用してテキスト内の文字を取得したいと思います。そこで何気なく以下のようなマッチングルールを書いてみました:
(.*)
実行してみると、改行以降のテキストが取得できないことが分かりました。そこでマニュアルを確認したところ、正規表現では「.」(ドット記号)は改行文字「n」を除くすべての文字に一致することがわかりました。同時に、マニュアルには別の文もあります。「n」を含む任意の文字に一致するには、「[.n]」のようなパターンを使用します。そこで、正規表現の一致ルールを次のように変更しました:
([.n]*) もちろん、Java プログラムに直接記述されている場合は、([.\n]*)
に変更する必要があります。その結果、プログラムを再度実行しましたが、何も取得できないことがわかりました。理解できなかったので、次のルールに変更しました:
([.|n]*) と ([n.]*)
結果はまだ機能せず、何も取得できませんでしたコンテンツ。ドット記号と改行文字が頑張っているようですね〜
そこでネットで調べてみたところ、上記のルールのどこに問題があるのか分かりませんでしたが、試してみると確かに一致することが分かりました。内の改行文字内の文字については、次の正規表現一致ルールが正しいです:
([sS]*)
同時に、「([dD]*)」および「([ ww]*)」。
テキスト ファイルでは、この式はすべての英語に一致します
/[ -~]/
この式はすべての英語以外 (中国語など) に一致します
/[^ -~]/
/ は VI で使用されます。 editplus やプログラムに / は必要ありません
任意の文字 (改行文字を含む) に一致する正規表現の書き方に関するその他の記事については、PHP 中国語 Web サイトに注目してください。