我这里有一个Java模式
String patternString = "(#)(.+?)([\\s,#.])";
我基本上想找到以'#'开头的所有单词。在给定的文本字符串中。如果后面跟着一个结束行,则该模式匹配除最后一个之外的所有单词。我使用哈希映射来存储值。
int x = 0;
HashMap<Integer, String> values = new HashMap<>();
while(matcher.find()) {
values.put(x++, matcher.group(2));
}
我试过放一个&#39; $&#39;第三个符号与组匹配,但它似乎不起作用。如何调整模式以匹配以&#39;#&#39;开头的所有单词。还包括最后一个字?
答案 0 :(得分:1)
除非我误解了你的要求,否则它会简单得多。我建议使用以下模式:
(#)([^\s]+)
匹配#后跟尽可能多的非空白字符。您必须更改代码才能使用组1而不是组2,因为我的模式没有3组。
根据您的具体要求,您还可以使用\w
代替[^\s]
来匹配任何字词(相当于[a-zA-Z0-9 _])。