正規表現は長さによって異なります。

正規表現は長さによって異なります。

長さが5プラス2の倍数の行のみを許可する正規表現です。例:7、12、32など知っている人はいますか?

ベストアンサー1

本当に正規表現を使用したい場合は、「^..(.{5})+$」を拡張正規表現として解釈します。たとえば、次のように使用できますgrep -E

for i in {1..20}; do printf "%.${i}s\n" --------------------; done | grep -E '^..(.{5})+$'

これはデフォルトの正規表現 "^..(.{5})+$" で書き換えることができます。

どちらの式も一致するテキストの先頭と末尾に固定されているため、行全体と一致します。 「..」は任意の2文字に一致し、「(.{5})」は任意の5文字に一致し、「+」は少なくとも最後の一致を繰り返します。したがって、各行に含まれる文字数が5×であることを確認してください。N+2N >0.

別のツールを使用して、行の長さを非常にすばやく確認することもできます。

... | awk 'length > 5 && length % 5 == 2'

おすすめ記事