这两个正则表达式之间有什么区别:
[a-zA-Z!@#$%^&*()_=;.?]+[0-9]+
和
[a-zA-Z]+[!@#$%^&*()_=;.?][0-9]+
令牌可以以多个字母字符开头,并以数字序列结束。它也可以从一个特殊字符开始,并以数字序列结束。
第一个正则表达式将字符串jkl3242oij92384nji332332!23#900&6382^832983@7729.979797_70979797
分解为所需的标记,但第二个没有。为什么?
如何实现这个概念,只允许一个特殊字符?
答案 0 :(得分:2)
答案 1 :(得分:1)
区别在于正则表达式#1:[a-zA-Z!@#$%^&*()_=;.?]+[0-9]+
会将字符串分解为至少一个字符的标记:[a-zA-Z!@#$%^&*()_=;.?]
后跟至少数字[0-9]
。
正则表达式#2:[a-zA-Z]+[!@#$%^&*()_=;.?][0-9]+
会将字符串分成至少一个字母[a-zA-Z]
的标记,然后是{strong>一个 [!@#$%^&*()_=;.?]
,后跟至少一个数字[0-9]
。
答案 2 :(得分:0)
不是你问题的答案,但我发现这是调试正则表达式的一个非常有用的工具:https://www.debuggex.com/