0

这两个正则表达式有什么区别:

[a-zA-Z!@#$%^&*()_=;.?]+[0-9]+

[a-zA-Z]+[!@#$%^&*()_=;.?][0-9]+

一个标记可以以多个字母字符开头,并以数字序列结尾。它也可以以一个特殊字符开头,以数字序列结尾。

第一个正则表达式将字符串jkl3242oij92384nji332332!23#900&6382^832983@7729.979797_70979797分解为所需的标记,但第二个没有。为什么 ?

我如何实现这个概念,只允许一个特殊字符?

4

3 回答 3

2

在我做对之后:

([a-zA-Z]+|[!@#$%^&*()_=;.?])[0-9]+

以多个字母数字或一个特殊字符开头,仅以数字结尾。

正则表达式101

于 2013-10-30T05:39:27.583 回答
1

不同之处在于正则表达式 #1:[a-zA-Z!@#$%^&*()_=;.?]+[0-9]+会将字符串分解为至少一个字符的标记:[a-zA-Z!@#$%^&*()_=;.?]后跟至少 on number [0-9]

正则表达式#2:[a-zA-Z]+[!@#$%^&*()_=;.?][0-9]+另一方面,会将字符串分解为至少一个字母的标记[a-zA-Z],后跟一个of [!@#$%^&*()_=;.?],然后是至少一个数字[0-9]

于 2013-10-30T05:26:19.663 回答
0

不是你的问题的真正答案,但我发现这是一个非常有用的工具来调试正则表达式: https ://www.debuggex.com/

于 2013-10-30T05:28:40.003 回答