【发布时间】:2017-06-15 23:48:10
【问题描述】:
我这里有一个 Java 模式
String patternString = "(#)(.+?)([\\s,#.])";
我基本上想在给定的文本字符串中找到所有以“#”开头的单词。如果后面有结束行,则该模式匹配除最后一个单词之外的所有单词。我正在使用哈希映射来存储值。
int x = 0;
HashMap<Integer, String> values = new HashMap<>();
while(matcher.find()) {
values.put(x++, matcher.group(2));
}
我尝试在第三个中添加一个“$”符号以匹配该组,但它似乎不起作用。如何调整模式以匹配所有以“#”开头且包含最后一个单词的单词?
【问题讨论】:
-
考虑
\b(单词边界)而不是\s,或替换为$字符串锚结尾 -
使用
String patternString = "#(\\w+)";并抓取.group(1)。
标签: java regex pattern-matching