• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現が解読できません。)

正規表現の解読方法について教えてください

このQ&Aのポイント
  • 正規表現が解読できずに困っています。ネットでの検索では一部は解読できたものの、全体を理解することができません。
  • 対象ファイルの認識規則が正規表現で記載されているのですが、正規表現について無知なため解読できません。
  • 具体的な正規表現パターンとして、[A-Z0-9]や{4,4}などが使われています。どなたか教示いただける方はいらっしゃいませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

まず、この正規表現を処理するのが何かを確認して、そのマニュアルとか説明書とかを読むこと。 正規表現は、その処理するプログラム言語やライブラリによって違いがあります。 \\が多く出てきているので、予想としては、一度\によるエスケープを処理したものが正規表現になっていると思われます。 これは、CやJavaで文字列に\を記述するときに "\\"等と書くのと同様ではないかと思われます。 また、 FILE_COPY.REGEX1= で、設定の順番 ファイル名に一致させようとするなら、\t(タブ文字)がファイル名に含まれるのも稀なので <ABC> が設定名かなにか、 \t が前後の区切りで、後半が正規表現ではないかと予想されます。 これらは、そのファイルの中身がどうなっているかを、マニュアルなので確認してください。 正規表現の基本は 「文字列を特定するためパターン」「そのパターンがいくつ続くか(1回だけなら省略可」 のくりかえしです。 .+\\\\ABC(\\\\.*)?\\\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\\\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\\.gz は、先のように\を処理して .+\\ABC(\\.*)?\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\\[A-Z0-9]{4,4}[0-9]{3,3}[A-Z0-9]+\.gz という正規表現だと思われます。 これを上記の「パターン」と「数」に分解していくと .+ \\ A B C (\\.*)? \\ [A-Z0-9]{4,4} [0-9]{3,3} [A-Z0-9]+ \\ [A-Z0-9]{4,4} [0-9]{3,3} [A-Z0-9]+ \. g z となり、それぞれ .+ .は任意の文字。それが1つ以上続くものにマッチ \\ \は後の文字とセットで特殊な意味を持ったり、元の意味を消したりする。この場合は、\の特殊な意味を消し、「\という文字」にマッチ A Aという文字にマッチ B Bという文字にマッチ C Cという文字にマッチ (\\.*)? (\\.*)というパターンが0個か1個。()の中は 「\の後に0文字以上の任意の文字列」 \\ [A-Z0-9]{4,4} [A-Z0-9]が4回。つまり [A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9] の意味 以下略 となっていきます。これでどんなパターンがマッチするかわかると重います。 3番目は非常に簡単です。 2番目でややこしいのは (?<\!\\.tar) の部分で、おそらく ・\!というのはあまり標準ではありませんが、!がコメント等の特殊な意味になるので、\で打ち消しているのではないでしょうか? ・そうなると、↓の意味になりそうです。が、他の意味かもしれません http://www.kt.rim.or.jp/~kbk/regex/regex.html#NEGATIVELOOKBEHIND

noname#175991
質問者

お礼

丁寧な回答を頂き、大変感謝しております。 ご回答をもとに、マニュアルと比較しながら細かい点を確認したいと思います。 この度はありがとうございました。

関連するQ&A