猿问

正则表达式在两个 undescores 之间获取单词

我有一条线 bla_bla**_**test**_1**023

并希望提取之间的单词_和任何下划线后按数字_digittest在上述的例子。

我已经尝试了以下正则表达式,但不幸的是不起作用: [^_ ]+(?=[ _\d])- 它让我在“_digit”之前获得所有单词,而不仅仅是之前的单词_digit


开满天机
浏览 132回答 2
2回答

扬帆大鱼

这应该对你有用。使用Pattern和Matcher与查找变通。public static void main(String[] args) {&nbsp; &nbsp; String word= "bla_bla_test_1023";&nbsp; &nbsp; Pattern p = Pattern.compile("(?<=_)([^_]+)(?=_\\d+)");&nbsp; &nbsp; Matcher m = p.matcher(word);&nbsp; &nbsp; while (m.find()) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(m.group());&nbsp; &nbsp; }}开/关:测试

GCT1015

&nbsp;[^_]*(?=_\d)您想匹配除 _ 以外的所有内容,直到找到 _ 后跟一个数字。
随时随地看视频慕课网APP

相关分类

Java
我要回答