我正在寻找一个简短的Java正则表达式,可以用作String.matches(…)
方法的参数,如果字符串在任何位置包含至少一个字母数字字符,则返回true, >。我已经尝试了一些方法,但是似乎没有任何效果。例如,我尝试了以下正则表达式:
*[a-zA-Z0-9]+*
但是,我得到了以下运行时异常:
Dangling meta character '*' near index 0
*[a-zA-Z0-9]+*
^
答案 0 :(得分:2)
String.matches
方法尝试将整个字符串与正则表达式匹配。因此,匹配其中任何包含字母数字的字符串的表达式将是:".*\\w.*"
请注意,\w
包含下划线字符,因此,如果您不希望包含下划线字符,则请使用更明确的模式。>
或者,您可以使用Pattern.find
来在字符串中的任意位置找到"\\w"
。
答案 1 :(得分:1)
星号('*')不是与任何字符匹配的符号,句点('。')是。
您需要将正则表达式更改为.[a-zA-Z0-9]+.
星号用于指定匹配模式的计数:
[0-9]+
表示至少一位数字
[0-9]*
表示没有一个或多个数字