正しい使い方を理解しようとしています。 »原子のグループ化«別名»独立サブ表現«別名»非逆追跡サブモード«[これは同じことについて私が見つけた用語ですが、それはそれほど複雑ではありません。]
egrep '123(?>fruit|juiceomatic)machine'
意味: 探す123fruitjuiceomaticmachine
- しかし、一致させる努力をやめてください。[残り] 括弧内の内容はif
123
の後ろにfruit
!
そうですか?私は何か重要なものを逃しましたか?
私がこの質問をする理由は、ほとんどが期待した結果を得るからです。しかし、それが私が正しくやっているからなのか、ただ幸運の推測をしたからなのか、100%確信することはできません。
答え1
これは拡張正規表現(ERE)ではありません。後にor(無視)の後にegrep
来ると解釈されます。これは次のように一致することを意味します。123
>fruit
juiceomatic
?
machine
123>fruitmachine
123>juiceomaticmachine
しかし:
123fruitjuiceomaticmachine
この(?>...)
記号は PCRE に由来し、これは次のことを意味します。閉じ込められていない原子、望むよりpcresyntax(3)
。-P
GNU grepとスイッチで使用できます。
私が正しく理解した場合は123
、fruit
従わjuiceomatic
なければなりません。この場合、123fruit(|juiceomatic)machine
これはあなたが望むEREだと思います。