带下划线的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));