Erl*_*end 2 regex special-characters
鉴于文本:
This is a #tag and this is another #love@irc.oftc.net and more text.
Run Code Online (Sandbox Code Playgroud)
我想匹配以哈希开头并以空格字符结尾的单词(我不想为 指定特定模式#love@irc.oftc.net
)。
我不能使用lookarounds
,也不想使用\b
.
我试过#.*\b
, #.*\s
,它会比我要求的更匹配。我猜它*
也会匹配空格,所以最后一次检查被忽略。
我使用https://regexr.com/进行测试。
您可以使用
#\S+
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示。
细节
#
- 一个#
符号\S+
- 1 个或多个除空格之外的字符(也可以写为[^\s]*
,但\S
只是更短)。作为一种可能的增强,您仍然可以考虑使用单词和非单词边界。例如,当您想避免匹配abc#tagliketext
或需要避免匹配标签末尾的标点时,您可以考虑使用
\B#\S+\b
Run Code Online (Sandbox Code Playgroud)
请参阅另一个正则表达式演示。的\B
,如果有一个字字符前非单词边界将失败的比赛#
,并且\b
将停止最右边的非单词字符之前匹配。