他の正規表現内で正規表現を否定する方法

他の正規表現内で正規表現を否定する方法

つまり、POSIX正規表現Xが与えられると、どのPOSIX正規表現がXの補完になりますか? (より詳細な方法:Xと一致しないがXと一致する文字列と一致しないすべての文字列と一致する正規表現X 'を取得する方法)

POSIXで利用できない場合、それを含む一般的な拡張機能はありますか?

ベストアンサー1

私はPCREを試してみることができると思います。文字列の場合は確実に動作しますが、(?:(?!X).)正規表現Xの場合は常に動作すると100%確信できません。X

echo "dust mite" | grep -P '^(?:(?!abc).)*$'
dust mite

echo "dust abc mite" | grep -P '^(?:(?!abc).)*$'
echo "dust mite" | grep -P '^(?:(?!abc(x+y)).)*$'
dust mite

echo "dust abcxxxxy mite" | grep -P '^(?:(?!abc(x+y)).)*$'

おすすめ記事