2012-01-13 21 views
2

オプションの式の組み合わせに一致させたいと思います。この具体例では、からまでの単語に一致させたいと考えています。また、単語またはswim(空白で)先行する場合は、フレーズ全体で一致します。したがって、からまでの式の組み合わせはオプションでなければなりません。Regex:オプションの組み合わせ式の最適な構文?

私はすべての次の行が正の試合になりたい:

swim through <-- match entire phrase 
jump through <-- match entire phrase 
hike through <-- match only the word "through" 

これを行うには、私は次の式を使用することができます

(jump\W|swim\W)?through 

をしかし、それは同じことを実現することが可能ですjumpswimの後に\Wを追加する必要はありませんか?

(jump|swim)?\W?through 

をしかし、それは第三の例にを通じての前にスペースが含まれるので、それが正常に働いていませんでした:私はこのような何かをしようとしていました。私はその単語の周りの空白ではなく、からまでの単語しか望んでいません。

+0

本当に重要ではないと思います。それはまだ非常に似たFSAを生成します – AlanFoster

+0

"マッチ"と言うとき、あなたは "抽出"を意味するのですか? – fge

答えて

3

この回答は役に立ちましたか?(?:(jump|swim)\W)?through

+0

パーフェクト。ありがとう。 '?:'はどうしますか? –

+0

非捕捉群を示します。 –