正则表达式一个点或一个下划线验证器

sha*_*poo 4 regex validation zend-validate

这是我的正则表达式

^(([a-z0-9]+)\.([a-z0-9]+)){4,20}$|^(([a-z0-9]+)\_([a-z0-9]+)){4,20}$
Run Code Online (Sandbox Code Playgroud)

它将是一个带有单个点或单个下划线或没有uderline和dot的单词.我也希望这个表达式在4到20个字符之间(它将是db中的用户名)

这个正则表达式

^(([a-z0-9]+)\.([a-z0-9]+))$
Run Code Online (Sandbox Code Playgroud)

还有这个

^(([a-z0-9]+)\_([a-z0-9]+))$
Run Code Online (Sandbox Code Playgroud)

工作成功,但我不知道如何限制字符串长度

:( 请帮忙

我将使用它与zend框架正则表达式验证器...

Ken*_*rey 7

^(?=[^\._]+[\._]?[^\._]+$)[\w\.]{4,20}$
Run Code Online (Sandbox Code Playgroud)

说明:

^            - 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
Run Code Online (Sandbox Code Playgroud)

(?=[^\._]+[\._]?[^\._]+$)该字符串包含不超过1个保证._.其余的匹配字符串.

  • 非常小的注意事项 - 您不需要在字符类中转义句点. (2认同)