我有一个名字,“foo bar”,在任何字符串中,foo
, foos
,bar
都bars
应该匹配。
我认为这应该像这样工作:(foo|bar)s?
. 我也尝试了其他一些正则表达式,但它们都是这样的。我怎样才能做到这一点?
我有一个名字,“foo bar”,在任何字符串中,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
)有一个单独的函数来匹配整个字符串。