正则表达式匹配数字标记,但仅当不是另一个单词的一部分时

时间:2015-10-15 16:30:40

标签: c# regex

使用C#Regex我尝试匹配包含@符号的令牌。例如:

  

这个月你的工资是1美元。

我无法使用\b@1\b之类的模式,因为\b匹配单词的开头和结尾,@1正确无法识别为单词。

我可以使用哪种模式来匹配此类令牌,​​即@1@2等?

1 个答案:

答案 0 :(得分:2)

你可以使用环顾(?<!\w)(=之前不允许使用单词字符)和(?!\w)(=之后不允许使用单词字符)。

(?<!\w)@\d+(?!\w)

请参阅regex demo

请注意\d+匹配1位或更多位数。