具有特殊字符的数字的正则表达式**仅**

Han*_*Goc 0 c++ regex string

我正在寻找一个正则表达式,只匹配具有特殊字符和大小为4+的数字字符串.我对这里发布的问题做了一点评论:

测试网站: http ://regexlib.com/RETester.aspx


1- 数字和特殊字符检查的正则表达式

解: ^((?!.*?\d)(?!.*?[^\w\s]).)+$

我试过这个正则表达式:

  • 155-555:不匹配(错误)
  • 155555:不匹配(错误)

2- 正则表达式匹配包括特殊字符在内的一串数字

解: ([-()_.+ ]*\d[-()_.+ ]*){4,}

  • 155-555:匹配(正确)
  • 155555:匹配(正确)
  • 155-555aaa:匹配(错误)

此正则表达式与先前的字符串匹配.但是有一个错误.第三个字符串155-555aaa包含字母而不是特殊字符.我们不应该匹配155-555aaa,因为a不是特殊字符.如何修改此正则表达式以仅匹配具有特殊字符的数字字符串.数字字符串可以是任何形式:

例如: 24332-2432 @ 2342-1234


特殊字符:[&〜#"{'[(| -`_ \ç^à@)]} =} ^¨$$*%ù]

数字 =数字

Boj*_*les 5

只需匹配任何不是 [a-zA-Z](长度为4或更长)的东西:

^[^a-z\s]{4,}$
Run Code Online (Sandbox Code Playgroud)

这是对RegexPal 的测试.