Java正则表达式,用于在任何位置包含至少一个字母数字字符的字符串

时间:2019-09-16 03:21:49

标签: java regex

我正在寻找一个简短的Java正则表达式,可以用作String.matches(…)方法的参数,如果字符串在任何位置包含至少一个字母数字字符,则返回true, >。我已经尝试了一些方法,但是似乎没有任何效果。例如,我尝试了以下正则表达式:

*[a-zA-Z0-9]+*

但是,我得到了以下运行时异常:

Dangling meta character '*' near index 0
*[a-zA-Z0-9]+*
^

2 个答案:

答案 0 :(得分:2)

String.matches方法尝试将整个字符串与正则表达式匹配。因此,匹配其中任何包含字母数字的字符串的表达式将是:".*\\w.*"请注意,\w包含下划线字符,因此,如果您不希望包含下划线字符,则请使用更明确的模式。

或者,您可以使用Pattern.find来在字符串中的任意位置找到"\\w"

答案 1 :(得分:1)

星号('*')不是与任何字符匹配的符号,句点('。')是。

您需要将正则表达式更改为.[a-zA-Z0-9]+.


星号用于指定匹配模式的计数:

[0-9]+表示至少一位数字

[0-9]*表示没有一个或多个数字