首页 > 解决方案 > RegEx 忽略字母直到出现数字,然后匹配字母

问题描述

这旨在用于Java。想象一下以下示例输入:

WRA1007
1085808
1092650S
3901823CV

我想匹配至少一位数字后的所有字母字符

期望的输出:

S
CV

实际输出:

0S
3CV

我目前的方法如下所示:

\d[a-zA-Z]+

这种模式的问题在于它也预先包含了数字。我当前的解决方案是之后删除结果字符串的第一个字符。这对我来说似乎很不满意。

标签: javaregex

解决方案


你需要回顾一下:

(?<=\d)[a-zA-Z]+

(?<=\d)意思是“这个位置之前必须有一个数字,但不要匹配它”。

演示

或者,您可以使用一对()来围绕您想要获得的部分:

\d([a-zA-Z]+)

这称为“组”,您可以通过调用group(1)您的Matcher.


推荐阅读