Java 这两个正则表达式之间有什么区别?

Java 这两个正则表达式之间有什么区别?,java,regex,Java,Regex,这两个正则表达式之间的区别是什么: [a-zA-Z!@#$%^&*()_=;.?]+[0-9]+ 及 令牌可以以多个字母字符开头,并以数字序列结尾。它也可以以一个特殊字符开始,并以数字序列结束 第一个正则表达式中断字符串jkl3242oij92384nji332332!23#900&6382^832983@7729.979797_70979797插入所需的令牌,但second没有。为什么? 如何实现只允许一个特殊字符的概念?区别在于正则表达式1:[a-zA-Z!@$^&*()u=.?]

这两个正则表达式之间的区别是什么:

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

令牌可以以多个字母字符开头,并以数字序列结尾。它也可以以一个特殊字符开始,并以数字序列结束

第一个正则表达式中断字符串
jkl3242oij92384nji332332!23#900&6382^832983@7729.979797_70979797
插入所需的令牌,但second没有。为什么?


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

区别在于正则表达式1:
[a-zA-Z!@$^&*()u=.?]+[0-9]+
将字符串分解为至少一个字符的标记:
[a-zA-Z!@$^&*()u=.
后跟至少一个数字
[0-9]


另一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,另一方面,将把一个字符串破成一个字符串,一方面,将一个字符串破成一个至少一个字母的令牌。另一方面,另一方面,将一方面,将把一个字符串破成一个字符串,一个字符串成一个至少一个字母的令牌。一个字母的一个字母的令牌。一个字母的符号。一个字母。一方面,另一方面,一方面,另一方面,一方面,一方面,一方面,另一方面,另一方面,一方面,将把一方面,将把一方面,将把一方面,将把一个字符串打破一个字符串打破一个字符串。另一个字符串,另一方面,另一个字符串打破一个字符串。另一方面,另一个字符串,=;.?]+[0-9]+将字符串拆分为至少一个字符的标记:
[a-zA-Z!@$%^&*()u=.?]
后跟至少一个数字
[0-9]


另一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,另一方面,将把一个字符串破成一个字符串,一方面,将一个字符串破成一个至少一个字母的令牌。另一方面,另一方面,将一方面,将把一个字符串破成一个字符串,一个字符串成一个至少一个字母的令牌。一个字母的一个字母的令牌。一个字母的符号。一个字母。一方面,另一方面,一方面,另一方面,一方面,一方面,一方面,另一方面,另一方面,一方面,将把一方面,将把一方面,将把一方面,将把一个字符串打破一个字符串打破一个字符串。另一个字符串,另一方面,另一个字符串打破一个字符串。另一方面,另一个字符串,=;.?]+[0-9]+将字符串拆分为至少一个字符的标记:
[a-zA-Z!@$%^&*()u=.?]
后跟至少一个数字
[0-9]


另一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,将把一个字符串打破成一个字符串,一方面,另一方面,另一方面,将把一个字符串破成一个字符串,一方面,将一个字符串破成一个至少一个字母的令牌。另一方面,另一方面,将一方面,将把一个字符串破成一个字符串,一个字符串成一个至少一个字母的令牌。一个字母的一个字母的令牌。一个字母的符号。一个字母。一方面,另一方面,一方面,另一方面,一方面,一方面,一方面,另一方面,另一方面,一方面,将把一方面,将把一方面,将把一方面,将把一个字符串打破一个字符串打破一个字符串。另一个字符串,另一方面,另一个字符串打破一个字符串。另一方面,另一个字符串,=;.?]+[0-9]+将字符串拆分为至少一个字符的标记:
[a-zA-Z!@$%^&*()u=.?]
后跟至少一个数字
[0-9]


另一方面,正则表达式2:
[a-zA-Z]+[!@$%^&*(?)][0-9]+
将字符串分解为至少一个字母的标记
[a-zA-Z]
,然后是
[!@$%^&*(?)的一个,然后是至少一个数字
[0-9]
<,但我发现这是调试正则表达式的一个非常有用的工具:

不是你问题的答案,但我发现这是调试正则表达式的一个非常有用的工具:

不是你问题的答案,但我发现这是调试正则表达式的一个非常有用的工具:

这并不是你问题的答案,但我发现这是调试正则表达式的一个非常有用的工具:

在我正确理解之后:

([a-zA-Z]+|[!@#$%^&*()_=;.?])[0-9]+
以多个字母数字或一个特殊字符开头,仅以数字结尾


在我答对之后:

([a-zA-Z]+|[!@#$%^&*()_=;.?])[0-9]+
以多个字母数字或一个特殊字符开头,仅以数字结尾


在我答对之后:

([a-zA-Z]+|[!@#$%^&*()_=;.?])[0-9]+
以多个字母数字或一个特殊字符开头,仅以数字结尾


在我答对之后:

([a-zA-Z]+|[!@#$%^&*()_=;.?])[0-9]+
以多个字母数字或一个特殊字符开头,仅以数字结尾




如果你想明确地说开始/结束于,那么你应该锚定(
$
^
)。否则你可能会出人意料results@Dgrin91令牌应该是。而不是完整的字符串。两者都不能匹配整个模式,而不仅仅是第二个:,@kelunik NO。它匹配@saplingPro是的,多次,好的,但不能一次匹配整个模式。如果你想明确地说开始/结束于,那么你应该锚定(
$
^
). 否则你可能会出人意料results@Dgrin91令牌应该是。而不是完整的字符串。两者都不能匹配整个模式,而不仅仅是第二个:,@kelunik NO。它匹配@saplingPro是的,多次,好的,但不能一次匹配整个模式。如果你想明确地说开始/结束于,那么你应该锚定(
$
^
). 否则你可能会出人意料results@Dgrin91令牌应该是。而不是完整的字符串。两者都不能匹配整个模式,而不仅仅是第二个:,@kelunik NO。它匹配@saplingPro是的,多次,好的,但不能一次匹配整个模式。如果你想明确地说开始/结束于,那么你应该锚定(
$
^
). 否则你可能会出人意料results@Dgrin91令牌应该是。而不是完整的字符串。两者都无法匹配整个模式,而不仅仅是第二个:,@kelunik NO。它匹配@saplingPro是的,多次,好的,但不是一次匹配整个模式。我的正则表达式应该是什么,所以只允许使用一个特殊字符?您的第二个正则表达式是您想要的,但它不在您发布的令牌中。@saplingPro我不完全理解您的要求。你的代币可以用一个特殊字符而不是多个字母开头吗?@Daemon我该怎么做才能做到这一点?@saplingPro哦,好吧,现在我说对了,看我的答案,现在还早;)我的正则表达式应该是什么,以便只允许一个特殊字符?您的第二个正则表达式是您想要的,但它不在您发布的令牌中。@saplingPro我不完全理解您的要求。你的代币可以用一个特殊字符而不是多个字母开头吗?@Daemon我该怎么做才能做到这一点?@saplingPro哦,好吧,现在我说对了,看我的答案,现在还早;)我的正则表达式应该是什么,以便只允许一个特殊字符?您的第二个正则表达式是您想要的,但它不在您发布的标记中。@saplingPro I