所以我有一个字符串X1X2X3\\\\
。我只想捕获AlphaNumerics值。我的正则表达式是([A-z0-9]*).*
。但它会返回X1X2X3\\
。我的代码如下所示:
Pattern pattern = Pattern.compile("([A-z0-9]*).*");
Matcher matcher = pattern.matcher(str);
matcher.matches();
return matcher.group(1);
想找到正则表达式的答案。不是String.replaceAll()或replace():)
答案 0 :(得分:1)
问题出在A-z
中的[A-z0-9]
,它也可以匹配非字母字符,即Z
和a
之间的代码点。
对于字母数字字符或预定义字符类[A-Za-z0-9]
,要使用的正确表达式为\\w
。
(所有那些在评论中指出错误的人都会得到荣誉)