带下划线的Java正则表达式

带下划线的Java正则表达式,java,regex,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_

当我使用这个时:

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

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

Found: HEY_YO
O/p:


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

Found: HEY_YO
O/p:


我认为您没有将“HEY_YO NICE guehere”作为输入传递,因为对于此输入,您的代码将生成“Found:NICE”作为输出 替换


我认为您没有将“HEY_YO NICE guehere”作为输入传递,因为对于此输入,您的代码将生成“Found:NICE”作为输出 替换


我认为你不需要逃避
\w
。你到底想匹配什么模式?它被称为“下划线”。-)我认为你不需要逃避
\w
。你到底想匹配什么模式?它被称为“下划线”。-)知道正则运算有什么问题吗?根据,
\w
很可能包含了下划线。@RadLexus-他实际上打印了错误的组。他应该跳group1@RadLexus-但是他的正则表达式有一个缺陷。它不是在寻找
“\uquot
。首先:他会打印错误的组,但它会打印“未找到”。第二:
\w
包括
\u
。在断言…@RadLexus-是之前,我一定要查一下\w包括
。我从不否认。我的意思是,他并不是专门在寻找一个带有
\uuu
的单词。接下来我不知道你想说什么知道OPs regex有什么问题吗?根据,
\w
很可能包含了下划线。@RadLexus-他实际上打印了错误的组。他应该跳group1@RadLexus-但是他的正则表达式有一个缺陷。它不是在寻找
“\uquot
。首先:他会打印错误的组,但它会打印“未找到”。第二:
\w
包括
\u
。在断言…@RadLexus-是之前,我一定要查一下\w包括
。我从不否认。我的意思是,他并不是专门在寻找一个带有
\uuu
的单词。接下来我不知道你想说什么
Found: HEY_YO
System.out.println("Found: " + m.group(2));
System.out.println("Found: " + m.group(1));