这是我的正则表达式
^(([a-z0-9]+)\.([a-z0-9]+)){4,20}$|^(([a-z0-9]+)\_([a-z0-9]+)){4,20}$
它将是一个带有单个点或单个下划线或没有 uderline 和点的单词。我还希望这个表达式介于 4 到 20 个字符之间(它将是 db 中的用户名)
这个正则表达式
^(([a-z0-9]+)\.([a-z0-9]+))$
和这个
^(([a-z0-9]+)\_([a-z0-9]+))$
工作成功,但我不知道如何限制字符串长度
:( 请帮忙
我打算将它与 Zend 框架正则表达式验证器一起使用...
最佳答案
^(?=[^\._]+[\._]?[^\._]+$)[\w\.]{4,20}$
解释:
^ - Start of string
(?= - Followed by (not part of match)
[^\._]+ - Anything but . and _
[\._]? - Optional . or _
$ - End of string
)
[\w\.]{4,20} - 4-20 letters, digits, _ and .
$ - End of string
(?=[^\._]+[\._]?[^\._]+$)
确保字符串包含不超过 1 .
或 _
.其余的匹配字符串。
关于正则表达式一个点或一个下划线验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643546/