3

私は単語のリストを持っています - "foo""bar""baz"- 少なくとも2つを含む文字列に一致する正規表現を書きたいです。たとえば、一致する必要がありますが、"foo baz"一致し"ba foo z"ない必要があります。

明らかな解決策は機能しますが、単語が2 回"(foo|bar|baz).*(foo|bar|baz)"リストされているため、不十分だと思います。単語が 3 つではなく 25 語になったらどうなるでしょうか。特定の単語を 2 つだけではなく、少なくとも 4 つ含む文字列を探している場合はどうすればよいでしょうか?

4

2 に答える 2

4

正確な単語を探しているようには聞こえなかったので、Donkey のソリューションはあなたが望むものではないかもしれません

((foo|bar|baz).*?){2}

テキストでこれらの文字列のいずれかを検索し、次にオプションの文字列のいずれかが再び見つかるまで任意の文字を検索します。レイジーな任意の文字部分は何も一致しないことで満たされるため、一致は完了します。

複数行にわたって一致させたい場合は、ドットをすべてオンにするか、ドットの代わりに \s\S を使用してください。

于 2013-06-18T15:23:35.240 に答える