1. ホーム
  2. regex

[解決済み] what meas this regex (.*1) [duplicate] (重複)

2022-02-27 06:43:18

質問

一行で2回以上の文字列をチェックする正規表現についてググってみました。 で、この例を見つけました。

egrep "(\w{2}).*1" ファイル

でも、quot; (\w{2}).*1" っていうのがよくわからないんだけど。

誰か詳しく説明してくれるか、参考となるWebページを教えてください。

どのように解決するのですか?

  1. (\w{2}) は、これらすべてを含む任意の単語文字にマッチします。A-Z, a-z、0-9、アンダースコアで、数量が2( {2} 量詞)を使用すると また、一致した文字を捕捉グループとしてグループ化し、それらの文字を記憶する。 は、番号付きの後方参照を使用して再び参照することができます。 この場合 \1
  2. .* 0文字以上の任意の文字にマッチ
  3. \1 1番目のグループと再度一致

したがって、この正規表現は、同じ行の 0 文字以上の文字の後に繰り返される 2 単語の文字にマッチしようとします。

$ egrep "(\w{2}).*\1"
ab;;ab
ab;;ab
abcdab
abcdab
12ab12
12ab12
12abcd123
12abcd123
abab
abab
$

入力と一致した出力。

  1. ab;;ab をキャプチャしたグループです。 ab で、マッチした文字列は ab;;ab
  2. abcdab を捕獲した。 ab で、マッチした文字列は abcdab
  3. 12ab12 を捕獲した。 ab で、マッチした文字列は 12ab12
  4. 12abcd123 を捕獲した。 12 で、マッチした文字列は 12abcd12
  5. abab を捕獲した。 ab で、マッチした文字列は abab

ご指摘のとおり、メタ文字/特殊文字に関する詳細な情報は、以下のとおりです。 こちら