这旨在用于Java。 想象下面的示例输入:
WRA1007
1085808
1092650S
3901823CV
我要匹配至少一个数字后的所有字母。
所需的输出:
S
CV
实际输出:
0S
3CV
我当前的方法如下:
\d[a-zA-Z]+
此模式的问题在于它也预先包含了数字。我当前的解决方案是随后删除结果字符串的第一个字符。这对我来说似乎并不令人满意。
答案 0 :(得分:3)
您需要向后看:
(?<=\d)[a-zA-Z]+
(?<=\d)
的意思是“该位置前必须有一个数字,但不匹配”。
或者,您可以使用一对()
包围要获得的零件:
\d([a-zA-Z]+)
这称为“组”,您可以通过在group(1)
上调用Matcher
来获取其值。
答案 1 :(得分:2)
如果“添加”组,则可以得到仅包含字母的组1
\d([a-zA-Z]+)