我正在拼命寻找一个正则表达式,它匹配a到z,A到Z,0到9和" - "之间的任何东西.如果要检查的字符串等于"admin",则相同的正则表达式不能匹配.
我试过这个:
/^(?!admin)|([-a-z0-9]{1,})$/i
但它不起作用,它匹配字符串管理员,即使我添加了负面前瞻的东西.
我正在使用这个正则表达式与PHP(PCRE).
在单个正则表达式中执行"A而不是B"非常棘手.通常更好(更清晰,更容易)分两部分来做.如果这不是一个选项,那就可以完成.你处于正确的轨道上,负面的前瞻但是交替会让你失望.
/^(?!admin$)[-a-zA-Z0-9]+$/
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |