grepを使って正規表現パターンでORを使用する[重複]

grepを使って正規表現パターンでORを使用する[重複]

正規表現の一致(zgrep、圧縮ファイルの検索)のために、grepは次のパターンを使用しています。

zgrep -P '(?<=start).{20,120}(?=end)' *

OR途中で演算子を持ついくつかの用語を追加する必要がありますが、このパターンは機能しません。

zgrep -P '(?<=start)[first|second|third].{20,120}(?=end)' *

first|second|third一致する文字列の途中でどのように紹介しますか?

答え1

括弧内の式はリスト内のすべての単一[..]文字と一致するため、各文字を[first|second|third]個別に一致させます。f、、、、、、、、など。 (2番目の文字は必須ではありません。)この規則には、否定で始まる文字の範囲を表示するなど、いくつかの例外がありますが、パイプは特別ではないため、ファイル内でこの記号を検索するだけです。irst|es^-|grep

あなたが望むものです(first|second|third)。内部のすべての内容は(..)基本正規表現のサブ式を形成し、それらを結合/連結して|OR演算子として解釈できます。

関連情報