java - RegEx 忽略字母直到出现数字,然后匹配字母
问题描述
这旨在用于Java。想象一下以下示例输入:
WRA1007
1085808
1092650S
3901823CV
我想匹配至少一位数字后的所有字母字符。
期望的输出:
S
CV
实际输出:
0S
3CV
我目前的方法如下所示:
\d[a-zA-Z]+
这种模式的问题在于它也预先包含了数字。我当前的解决方案是之后删除结果字符串的第一个字符。这对我来说似乎很不满意。
解决方案
你需要回顾一下:
(?<=\d)[a-zA-Z]+
(?<=\d)
意思是“这个位置之前必须有一个数字,但不要匹配它”。
演示
或者,您可以使用一对()
来围绕您想要获得的部分:
\d([a-zA-Z]+)
这称为“组”,您可以通过调用group(1)
您的Matcher
.
推荐阅读
- haskell - Haskell Complex x 类型,其中 x 无法匹配实际类型 Int
- excel - MS 图形 API | 内容从 xlsx 转换为 pdf 时出错
- python - 如何从另一个 python 文件调用和打印项目
- c# - Android 应用无法从 Firebase 云通知打开
- ionic-framework - 缺少依赖项:尝试使用 ionic-stepper 时的 ionic-angular
- java - 为什么我不能编辑这个可编辑的 jComboBox 的外观?
- python - 熊猫在每条拖车的开头和结尾读取带有引号的csv
- r - 来自 for 循环内部的动态状态消息
- php - 使用foreach对组和人中的数组进行排序
- c# - 如何阅读 Web API 中的内容配置?