如何使用 PHP regexp 匹配字符串中任意位置的确切单词

off*_*ine 0 php regex

我想知道用户是否使用了这些词adminusername他们可能的用户名字符串中的任何地方。

因此,如果用户想要使用admin, or I am admin, or my admin nameor my username,作为他们的用户名,我希望我的正则表达式能够检测到它。如果他使用adminmember我可以忍受,不要发现它。我还希望检测不区分大小写。

到目前为止,我得到了这个,但它并没有像我想象的那样工作,因为它会检测到它不应该使用的词:

/^[admin|username]+$/i

这将匹配 even adm,它不应该。我已经尝试过单词边界,但我也无法让它工作,也许我做错了什么。正如您在我的问题中看到的,我想检测字符串中任何位置的单词 admin,但如果它是某个单词的一部分,我可以跳过它。

提前致谢。

Bar*_*mar 5

正则表达式中的方括号不是用于分组,而是用于指定字符类;分组是用括号完成的。你不想用^and锚定正则表达式$,因为它只会在字符串的开头和结尾匹配;您想用来\b匹配单词边界。

/\b(admin|username)\b/i
Run Code Online (Sandbox Code Playgroud)