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

时间:2014-01-28 11:24:50

标签: c++ regex string

我正在寻找一个正则表达式,仅匹配数字字符串与特殊字符和大小 4 + 。 我对这里发布的问题进行了一些评论:

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


1- regular expression for numeric and special chacter check

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

我试过这个正则表达式:

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

2- Regular Expression to match a string of numbers including special characters

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

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

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

示例: 24332-2432 @ 2342-1234


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

数字 =数字

2 个答案:

答案 0 :(得分:5)

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

^[^a-z\s]{4,}$
RegexPal上的

Here is a test

答案 1 :(得分:1)

使用更新特殊字符= [&~#"{'[(|-``_\ç^à@)]}=}^¨$*%ù]时,“特殊或数字”的类变为[0-9&~#"{'[(|-``_\ç^à@)]}=}^¨$*%ù],完整的正则表达式变为 ^[0-9&~#"{'[(|-``_\ç^à@)]}=}^¨$*%ù]{4,}$

但是,ù很特别而且ú不是,这是相当可疑的。