Php 正则表达式以排除特定单词,但允许某些模式

Php 正则表达式以排除特定单词,但允许某些模式,php,regex,Php,Regex,我正在生成一个正则表达式,它可以包含任何字母、数字或下划线[a-zA-Z0-9\,但不包含与log、login和最后一个test完全匹配的单词 有人能帮我吗?你可以使用这个负前瞻正则表达式: \b(?!log(?:in)?|test)\w+ (?!log(?:in)| test)为负前瞻,如果存在任何给定单词log、login、test,则匹配将失败。您可以使用此负前瞻正则表达式: \b(?!log(?:in)?|test)\w+ (?!log(?:in)?| test)是负前瞻的,如果

我正在生成一个正则表达式,它可以包含任何字母、数字或下划线
[a-zA-Z0-9\
,但不包含与
log
login
和最后一个
test
完全匹配的单词


有人能帮我吗?

你可以使用这个负前瞻正则表达式:

\b(?!log(?:in)?|test)\w+


(?!log(?:in)| test)
为负前瞻,如果存在任何给定单词
log、login、test,则匹配将失败。

您可以使用此负前瞻正则表达式:

\b(?!log(?:in)?|test)\w+


(?!log(?:in)?| test)
是负前瞻的,如果存在任何给定的单词
log、login、test
,则匹配将失败。

我认为下面的正则表达式应该可以做到这一点

^((?!log|login|test)[a-zA-Z0-9_])*$

我认为下面的正则表达式应该可以做到这一点

^((?!log|login|test)[a-zA-Z0-9_])*$
他为我做了这件事。谢谢你们的回答,伙计们


他为我做了这件事。谢谢你们的回答,伙计们

\w
代替
[A-Za-z0-9_uz]
。两者都是等效的。请使用
\w
而不是
[A-Za-z0-9\]
。两者都是等效的。@Spidi:您甚至可以使用
(?i:)
构造使其不区分大小写。请参阅anubhava的。谢谢Jan。OP还可以使用/I修饰符使其不区分大小写。@Spidi:您甚至可以使用
(?I:)
构造使其不区分大小写。请看anubhava的。谢谢Jan。OP也可以使用/I修饰符使其不区分大小写。好吧,我能说什么,你-锚破坏了一切。此外,他们是多余的(两次)。对不起,我的坏。我认为“日志”、“登录”、“测试”案例只被排除在外。已编辑。^(?(^test$)|(^log$)|(^login$)([A-Za-z0-9.-/]+)$为我解决了它。谢谢你们的回复,伙计们!好吧,我能说什么,你-锚摧毁了一切。此外,他们是多余的(两次)。对不起,我的坏。我认为“日志”、“登录”、“测试”案例只被排除在外。已编辑。^(?(^test$)|(^log$)|(^login$)([A-Za-z0-9.-/]+)$为我解决了它。谢谢你们的回复,伙计们!