私login.txtファイルに次のエントリ正/負の先読みは
abc def
abc 123
def abc
abc de
tha ewe
私はPerlを使用して肯定先読みを行うとき、私は以下の結果を得ているが含まれてい
cat login.txt | perl -ne 'print if /(?)abc\s(?=def)/'
abc def
とき私はgrepを使用しています。次の結果を得ています。
cat login.txt | grep -P '(?<=abc)\s(?=def)'
abc def
以下のようなperlとgrepの結果が表示されます。
cat login | perl -ne 'print if /(?)abc\s(?!def)/'
abc 123
def abc
abc de
grepの結果
cat login.txt | grep -P '(?<=abc)\s(?!def)'
abc 123
abc de
Perlが負先読みためDEF ABC一致しました。しかし、def abcと一致してはいけません。私はabcとdef patternをチェックしています。 grepは正しい結果を返します。
は私のperlパターンには何かがありませんか?
'(?)abc'は正の先読み正規表現ではありません。あなたは '(?=)abc'を望んでいました。私はそれが信じられないほど密な読書であることを認め、実験の最中に学んでいます... – smci