提问者:小点点

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


我正在寻找一个正则表达式来仅匹配具有特殊字符和大小为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

特殊字符:[

数字=数字


共2个答案

匿名用户

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

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

这是对RegexPal的测试。

匿名用户

用更新特殊字符=[

但是很可疑的是,u是特别的,而ú不是。