我有一条线 bla_bla**_**test**_1**023并希望提取之间的单词_和任何下划线后按数字_digit是test在上述的例子。我已经尝试了以下正则表达式,但不幸的是不起作用: [^_ ]+(?=[ _\d])- 它让我在“_digit”之前获得所有单词,而不仅仅是之前的单词_digit
2 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
这应该对你有用。使用Pattern和Matcher与查找变通。
public static void main(String[] args) {
String word= "bla_bla_test_1023";
Pattern p = Pattern.compile("(?<=_)([^_]+)(?=_\\d+)");
Matcher m = p.matcher(word);
while (m.find()) {
System.out.println(m.group());
}
}
开/关:
测试
添加回答
举报
0/150
提交
取消