(e) grep と原子のグループ化 [解答の質問]

(e) grep と原子のグループ化 [解答の質問]

正しい使い方を理解しようとしています。 »原子のグループ化«別名»独立サブ表現«別名»非逆追跡サブモード«[これは同じことについて私が見つけた用語ですが、それはそれほど複雑ではありません。]

  • egrep '123(?>fruit|juiceomatic)machine'意味: 探す 123fruitjuiceomaticmachine
  • しかし、一致させる努力をやめてください。[残り] 括弧内の内容はif123の後ろにfruit

そうですか?私は何か重要なものを逃しましたか?

私がこの質問をする理由は、ほとんどが期待した結果を得るからです。しかし、それが私が正しくやっているからなのか、ただ幸運の推測をしたからなのか、100%確信することはできません。

答え1

これは拡張正規表現(ERE)ではありません。後にor(無視)の後にegrep来ると解釈されます。これは次のように一致することを意味します。123>fruitjuiceomatic?machine

123>fruitmachine
123>juiceomaticmachine

しかし:

123fruitjuiceomaticmachine

この(?>...)記号は PCRE に由来し、これは次のことを意味します。閉じ込められていない原子、望むよりpcresyntax(3)-PGNU grepとスイッチで使用できます。

私が正しく理解した場合は123fruit従わjuiceomaticなければなりません。この場合、123fruit(|juiceomatic)machineこれはあなたが望むEREだと思います。

関連情報