2009-03-05 113 views
2

我需要查找严格以“$”开头并且只包含数字的单词的所有匹配。所以我写了

[$]\d+ 

这给了我4次比赛为

$10 $10 $20a a$20 

,所以我想用使用\乙字边界:

[$]\d+\b 

但它再次匹配

一20美元给我。

我试图

\b[$]\d+\b 

,但我失败了。

我正在寻找说,接受只有当这个词从$开始,然后是DIGITS。我如何用$ $告诉IT开始,因为我认为\ b正在让它假定字面边界意味着包围在字母数字字符内。

解决方案是什么?

+0

为什么是这个问题的社区维基? – 2009-03-05 16:17:24

回答

6

不是最好的解决方案,但这应该工作。 (它确实与你的测试用例)

(?<=\s+|^)\$\d+\b 
+0

这看起来很有希望,你能告诉你如何使用这个反向引用? – 2009-03-05 16:07:30

+0

(?<=)是一个正回归。它断言美元之前的字符匹配括号之间的正则表达式(这里是字符串的开头或一个或多个空格) – 2009-03-05 16:11:17

1

与尝试^ \ $ \ d +

哪里^表示一个字符串的开始。

相关问题