[英]regex to get word between two undescores
我有一行像bla_bla**_**test**_1**023
并想提取_
和任何下划线之间的单词,后跟数字_digit
,这是上面示例中的test
。
我尝试了以下正则表达式,但不幸的是不起作用: [^_ ]+(?=[ _\\d])
- 它让我得到“_digit”之前的所有单词,而不仅仅是_digit
之前的_digit
这应该对你有用。 使用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());
}
}
开/关:
测试
[^_]*(?=_\d)
您想匹配除 _ 以外的所有内容,直到找到 _ 后跟一个数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.