我需要检测具有特殊字符@#$且少于2位数字的单词。例如,“ ab3c”,“ a @ bc”,“ a @ 1c”,“ 4”,“ a2”等。虽然第一部分很简单,但是我不确定第二部分。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
要匹配字符串中的0或1位数字,您可以使用:
^\D*\d?\D*$
答案 1 :(得分:1)
如果支持正向超前并且您不想匹配空字符串,则可以使用:
^(?!(?:[^\d\s]*\d){2})[\w@#$]+$
说明
^
字符串的开头(?!
负向断言来断言直接在右边的内容不是
[^\d\s]*
匹配0+次而不是数字或空格字符,然后匹配一个数字){2}
关闭否定前瞻并重复2次,因为如果成功,则断言将不会通过[\w@#$]+
匹配角色类中列出的任何内容1次以上$
字符串结尾如果您有多个单词,可以将锚点^
和$
更改(demo)到单词边界\b
答案 2 :(得分:0)