我的名字是“foo bar”,任何字符串foo
,foos
,bar
和bars
都应匹配。
我认为这应该是这样的:(foo|bar)s?
。尝试了其他一些正则表达式,但它们都是这样的。
你能帮我解决这个问题吗?
答案 0 :(得分:4)
(foo|bar)s?
是正确的..
你应该像\b(foo|bar)s?\b
那样使用边界,否则它也会匹配hihellofoos
答案 1 :(得分:2)
您的问题似乎反映了您在foosss
找到匹配项的原因的困惑。注意在字符串中查找匹配项和匹配整个字符串之间的区别。
您有多种方法可以解决这个问题,正确的选择取决于您的应用程序。
^(foo|bar)s?$
\b(foo|bar)s?\b
preg_match
)有一个单独的函数来匹配整个字符串。