带有下划线的Java Regex

时间:2016-03-13 10:05:47

标签: java regex

Pattern r = Pattern.compile("(\\w+)\\s+(\\w+)\\s+(\\w+)\\s*");
Matcher m = r.matcher(line);
if (m.find()) {
    System.out.println("Found: " + m.group(2));
} else {
    System.out.println("Not found");
}

当我使用它时:

HEY_YO NICE GUYHERE

显示输出:未找到。 如何获得带下划线的字符串? (_)

输入:

HEY_YO NICE GUYHERE

我想输出:

Found: HEY_YO

2 个答案:

答案 0 :(得分:2)

我认为您没有传递&#34; HEY_YO NICE GUYHERE&#34; 作为输入,因为对于此输入,您的代码将生成&#34; Found:NICE&#34; < / strong>作为输出。获得您想要的输出 取代

System.out.println("Found: " + m.group(2));

System.out.println("Found: " + m.group(1));

答案 1 :(得分:1)

使用matcher.find()时,您只能指定要捕获的内容:

public static void main(String[] args) {
    String line = "HEY_YO NICE GUYHERE";
    Pattern r = Pattern.compile("[a-zA-Z]+_[a-zA-Z]+");
    Matcher m = r.matcher(line);
    if (m.find()) {
        System.out.println("Found: " + m.group(0));
    } else {
        System.out.println("Not found");
    }

}

O / P:

Found: HEY_YO