我有一条类似bla_bla**_**test**_1**023的行

并希望提取_和任何下划线之间的单词,后跟上例中的_digit数字test

我尝试了以下正则表达式,但不幸的是无法正常工作:
[^_ ]+(?=[ _\d])-它使我在“ _digit”之前的所有单词不只是在_digit之前的单词

最佳答案

这应该为您工作。将PatternMatcher与环顾四周一起使用。

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());
    }


}


O / P:


  测试

关于java - 正则表达式可以在两个下划线之间取得联系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53013824/

10-09 19:24