鉴于文字:
This is a #tag and this is another #love@irc.oftc.net and more text.
我想匹配以哈希开头并以空格字符结尾的单词(我不想为#love@irc.oftc.net
指定特定模式)。
我无法使用lookarounds
,也不愿使用\b
。
我尝试了#.*\b
,#.*\s
,这比我要求的更多。我猜*
也会匹配空格,因此忽略最后一次检查。
我使用https://regexr.com/进行测试。
答案 0 :(得分:3)
您可以使用
#\S+
请参阅regex demo。
<强>详情
#
- #
符号\S+
- 除了空格之外的一个或多个字符(也可以写为[^\s]*
,但\S
只是更短)。作为可能的增强功能,您仍然可以考虑使用单词和非单词边界。例如,当你想避免匹配abc#tagliketext
或者你需要避免在标签的末尾匹配标点符号时,你可以考虑使用
\B#\S+\b
见another regex demo。如果在\B
之前有单词char,#
非单词边界将失败,并且\b
将在最右边的非单词char之前停止匹配。
答案 1 :(得分:2)