私は「foobar」という名前を持っており、任意の文字列でfoo
、、、foos
と一致する必要がありますbar
。bars
私はこれがこのように機能するはずだと思いました:(foo|bar)s?
。他の正規表現も試しましたが、どれもこんな感じでした。これどうやってするの?
私は「foobar」という名前を持っており、任意の文字列でfoo
、、、foos
と一致する必要がありますbar
。bars
私はこれがこのように機能するはずだと思いました:(foo|bar)s?
。他の正規表現も試しましたが、どれもこんな感じでした。これどうやってするの?
(foo|bar)s?
正しい...
のような境界を使用する必要があります\b(foo|bar)s?\b
。それ以外の場合も一致しhihellofoos
ます。
あなたの質問は、で一致するものを見つけた理由についての困惑を反映しているようですfoosss
。文字列内で一致するものを見つけることと、文字列全体を一致させることの違いに注意してください。
これに対処するにはいくつかの方法があり、正しい選択はアプリケーションによって異なります。
^(foo|bar)s?$
\b(foo|bar)s?\b
preg_match
)には、文字列全体を照合するための個別の関数があります。