Regex 当定义的字符串不是';不在场
我正在拼命寻找一个正则表达式,它可以匹配a到z、a到z、0到9和“-”之间的任何内容。如果要检查的字符串等于“admin”,则同一正则表达式不得匹配 我试过这个:Regex 当定义的字符串不是';不在场,regex,Regex,我正在拼命寻找一个正则表达式,它可以匹配a到z、a到z、0到9和“-”之间的任何内容。如果要检查的字符串等于“admin”,则同一正则表达式不得匹配 我试过这个: /^(?!admin)|([-a-z0-9]{1,})$/i 但是它不起作用,它匹配字符串admin,即使我添加了消极的前瞻性内容 我将这个正则表达式与PHP(PCRE)一起使用。正则表达式是您唯一可用的工具吗?这样做可能更容易(Perl语法): 正则表达式是您唯一可用的工具吗?这样做可能更容易(Perl语法): 我认为如果您删除了“
/^(?!admin)|([-a-z0-9]{1,})$/i
但是它不起作用,它匹配字符串admin,即使我添加了消极的前瞻性内容
我将这个正则表达式与PHP(PCRE)一起使用。正则表达式是您唯一可用的工具吗?这样做可能更容易(Perl语法):
正则表达式是您唯一可用的工具吗?这样做可能更容易(Perl语法):
我认为如果您删除了“or”(
|
)操作符,它会起作用。现在你基本上是说,如果它是字母等等,那么匹配,或者不等于admin,所以它总是返回true,因为当它等于admin时,它仍然匹配另一个表达式。我认为如果你删除“OR”(|
)操作符,它会起作用。现在你基本上是说,如果它是字母等等,那么匹配,或者不等于admin,所以它总是返回true,因为当它等于admin时,它仍然匹配另一个表达式。在单个正则表达式中执行“A而不是B”是很棘手的。通常最好(更清晰、更容易)分两部分来做。如果这不是一个选项,它可以做到。你走在正确的轨道上,消极的展望未来,但这种交替正在扼杀你
/^(?!admin$)[-a-zA-Z0-9]+$/
在Perl的扩展语法中,这是:
/
^ # beginning of line anchor
(?! # start negative lookahead assertion
admin # the literal string 'admin'
$ # end of line anchor
) # end negative lookahead assertion
[-a-zA-Z0-9]+ # one or more of a-z, A-Z, 0-9, or '-'
$ # end of string anchor
/x
在单个正则表达式中执行“A而不是B”是很棘手的。通常最好(更清晰、更容易)分两部分来做。如果这不是一个选项,它可以做到。你走在正确的轨道上,消极的展望未来,但这种交替正在扼杀你
/^(?!admin$)[-a-zA-Z0-9]+$/
在Perl的扩展语法中,这是:
/
^ # beginning of line anchor
(?! # start negative lookahead assertion
admin # the literal string 'admin'
$ # end of line anchor
) # end negative lookahead assertion
[-a-zA-Z0-9]+ # one or more of a-z, A-Z, 0-9, or '-'
$ # end of string anchor
/x
^(?![\.]*[aA][dD][mM][iI][nN][\.]*$)([A-Za-z0-9]{1,}$)
尝试在code.google.com^(?![\.]*[aA][dD][mM][iI][nN][\.]*$)([a-Za-z0-9]{1,}$)上使用regex测试工具,如regex-freetool
尝试使用regex测试工具,比如code.google.com上的regex-freetool