Regex将单词与以哈希开头、以空格结尾的特殊字符相匹配
鉴于案文:Regex将单词与以哈希开头、以空格结尾的特殊字符相匹配,regex,special-characters,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,这将比我要求的匹配更多。我猜*也将匹配空格,因此忽略最后一个检查 我用于测试。 你可以匹配每个字符,除了中间的空间。 试试这个: #[^\s]+\s 您可以使用 #\S+
This is a #tag and this is another #love@irc.oftc.net and more text.
我希望匹配以哈希开头、以空白字符结尾的单词(我不想为#love@irc.oftc.net
)
我不能使用lookarounds
,我不想使用\b
我尝试了#.*\b
,#.*\s
,这将比我要求的匹配更多。我猜*
也将匹配空格,因此忽略最后一个检查
我用于测试。 你可以匹配每个字符,除了中间的空间。 试试这个:
#[^\s]+\s
您可以使用
#\S+
看
详细信息
-一个#
符号#
-1个或多个除空格以外的字符(它也可以写成\S+
,但[^\S]*
更短)\S
作为一种可能的增强,您仍然可以考虑使用Word和Word边界。例如,当您希望避免匹配<代码> ABC.TAGLIGETEXT/<代码>时,或者当您需要避免在HASTAG末尾匹配标点符号时,可以考虑使用
\B#\S+\b
看。如果\B
前面有单词字符,则非单词边界将无法匹配,并且\B
将在最右边的非单词字符之前停止匹配。是否要\S+
?好吧,也许\B\S+
会更好。@WiktorStribiż。谢谢