以下代码返回 Application aaa bbbb xxxx Ass 。但是我也不想提取 xxxx Ass 单词。如何解决这个问题?
public static final String EXAMPLE_TEST = "ddd with fff Node preceded"
+ " by Class Application bzxcd by "
+ "Class aaa ds preceded by Class bbbb xxxx Ass";
String pattern = ".*?Class(\\s)+(\\w+)";
System.out.println(EXAMPLE_TEST.replaceAll(pattern, "$1$2"));
预期输出:
Application aaa bbbb
最佳答案
您不需要在此处使用replaceAll
。使用这个正则表达式:
"\\bClass\\s+(\\w+)\\b";
并使用 Matcher.find()
方法来获取像这样的匹配:
Pattern p = Pattern.compile("\\bClass\\s+(\\w+)\\b");
Matcher m = p.matcher(EXAMPLE_TEST);
while (m.find()) {
System.out.println(m.group(1));
}
关于java - 提取单词 "Class"之后的所有第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616105/