正则表达式将单词与以哈希开头并以空格结尾的特殊字符匹配

时间:2018-03-15 11:44:42

标签: regex special-characters

鉴于文字:

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/进行测试。

2 个答案:

答案 0 :(得分:3)

您可以使用

#\S+

请参阅regex demo

<强>详情

  • # - #符号
  • \S+ - 除了空格之外的一个或多个字符(也可以写为[^\s]*,但\S只是更短)。

作为可能的增强功能,您仍然可以考虑使用单词和非单词边界。例如,当你想避免匹配abc#tagliketext或者你需要避免在标签的末尾匹配标点符号时,你可以考虑使用

\B#\S+\b

another regex demo。如果在\B之前有单词char,#非单词边界将失败,并且\b将在最右边的非单词char之前停止匹配。

答案 1 :(得分:2)

您可以匹配中间空格以外的每个字符。

试试这个:

#[^\s]+\s

Demo