为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Java Matcher 类匹配开始和结束字符

使用 Java Matcher 类匹配开始和结束字符

犯罪嫌疑人X 2021-08-19 22:27:13
我想从#以space.开头和结尾的字符串中获取单词。我试过使用它,Pattern.compile("#\\s*(\\w+)")但它不包含像'或这样的字符:。我想要只有模式匹配方法的解决方案。
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

我们可以尝试使用 pattern 进行匹配(?<=\\s|^)#\\S+,它会匹配任何以 开头的单词#,后跟任意数量的非空白字符。


String line = "Here is a #hashtag and here is #another has tag.";

String pattern = "(?<=\\s|^)#\\S+";

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(line);

while (m.find()) {

    System.out.println(m.group(0));

}


#hashtag

#another


查看完整回答
反对 回复 2021-08-19
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

\sis的反面\S,所以你可以使用这样的正则表达式:

#\s*(\S+)

或者对于 Java:

Pattern.compile("#\\s*(\\S+)")

它将捕获任何不是空白的东西。

如果你想停在空格字符,而不是任何空白变化\S[^ ]。在^括号内意味着它将否定后,无论发生什么事。

Pattern.compile("#\\s*([^ ]+)")


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信