2015-10-15 71 views
2

使用C#正则表达式我试图匹配包含@符号的标记。例如:正则表达式匹配一个数字标记,但只有在不属于另一个字的情况下

这个月你的工资是@ 1。

因为\b相匹配的开始和单词的结束和@1正确不被识别为一个字,我不能使用像\[email protected]\b的模式。

我可以用什么模式来匹配这样的令牌,例如@1@2等?

+0

目前尚不清楚你想要应用哪些规则,但是可能沿着'(^ | \ s)@ \ d \ b'的线是什么?或者'\ W'而不是'\ s'?再次,目前还不清楚你的意图是什么。 –

+0

你的*代币*分隔符是怎样的?由空白?标点?等等 –

回答

2

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

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

regex demo

注意\d+匹配1个或多个数字。

相关问题