![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ツールが対象ファイルを認識する規則が正規表現で記載されているのですが、
正規表現について無知なため、解読することができずに困っております。
ネット等で検索し、[A-Z0-9]や{4,4}など部分的には解読することができたのですが・・・
FILE_COPY.REGEX1=<ABC>\t.+\\\\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
FILE_COPY.REGEX2=<DEF>\t.*\\\\[^\\\\]*(?<\!\\.tar)
FILE_COPY.REGEX3=<GHI>\t.+\\.xml\\.gz
どなたかお時間のある方がいらっしゃいましたら、ご教示いただけないでしょうか。
どうぞよろしくお願いいたします。
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#NE …
丁寧な回答を頂き、大変感謝しております。
ご回答をもとに、マニュアルと比較しながら細かい点を確認したいと思います。
この度はありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) EXCELで同一セル内で自動的に改行されてしまう(難問) 6 2023/04/16 00:51
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- その他(コンピューター・テクノロジー) 正規表現の置換で数値を合計したいです。 2 2022/10/17 11:01
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現 URL抽出「 [\\/\\b]{0...
-
なんで真面目な出会いを求める...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
xmlファイル内の文字列置換
-
Excel VBAでPDFファイルをMicro...
-
マクロを使ってフォルダー内に...
-
VB.net、テキストボックス入力...
-
F9キーについて。
-
エクセルにMicrosoft Barcode C...
-
CSVの定義
-
プログラミングでは、半角括弧...
-
PHP カンマをエスケープしたい...
-
VB2005のTextBoxでカン...
-
CString から LPCTSTRの型に変換
-
「カンマ」と「コンマ」は同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現 URL抽出「 [\\/\\b]{0...
-
シェルスクリプト [[ $number =...
-
正規表現について VB6
-
正規表現について
-
日本語環境下でのバックスラッ...
-
正規表現で2種類ある括弧を区別...
-
perlの正規表現で量指定子を繰...
-
perl初心者です。
-
言語ではなく、正規表現のみで...
-
正規表現の展開
-
正規表現
-
正規表現について教えてください
-
正規表現が解読できません。
-
pythonの正規表現、全角カタカ...
-
行末の正規表現について。
-
正規表現。行頭が○○以外にマッ...
-
配列内の要素をパターンマッチする
-
置き換えについて
-
【GVimの正規表現における検索...
-
「?」が含まれるマッチについて
おすすめ情報