我想找到使用java正则表达式的所有单词,以#34;#"开头。并以空格或"结束。"

时间:2016-05-26 07:06:34

标签: java regex string pattern-matching matcher

这是一个示例字符串

hi #myname, you  got #amount

我想找到使用java regx的所有单词, 以#开头,以空格或.结尾 示例#myname#amount

我尝试了以下正则表达式,但它不起作用。

String regx = "^#(\\s+)";

3 个答案:

答案 0 :(得分:2)

这应该是这样的:

#(\w+)(?:[, .]|$)
  • #字面上匹配#
  • \w是一个至少包含一个字母的字词
  • (?:)是非捕获组
  • [, .]|$是一组结尾字符,包括行$

有关详细信息,请查看Regex101

在Java中,不要忘记使用双\\转义:

String str = "hi #myname, you  got #amount";
Matcher m = Pattern.compile("#(\\w+)(?:[, .]|$)").matcher(str);
while (m.find()) {
   ...
}

答案 1 :(得分:1)

String str = "hi #myname, you  got #amount";
Matcher m = Pattern.compile("\\#(\\w+)").matcher(str);

答案 2 :(得分:0)

这是正则表达式:"(#\w*?[ .])"