2

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

[$]\d+

这给了我 4 场比赛

$10 $10 $20a a$20

所以我想到了使用 \b 来使用单词边界:

[$]\d+\b

但它再次匹配

给我20美元。

我试过

\b[$]\d+\b

但我失败了。

我正在寻找说,仅当单词以 $ 开头并且后跟 DIGITS 时才接受。我如何告诉它以 $ 开头,因为我认为 \b 使它假定单词边界,这意味着包围在字母数字字符内。

解决办法是什么?

4

4 回答 4

6

不是最好的解决方案,但这应该可行。(它与您的测试用例有关)

(?<=\s+|^)\$\d+\b
于 2009-03-05T16:00:32.793 回答
3

你有没有尝试过

\B\$\d+\b

于 2009-03-05T16:02:01.073 回答
2

你很接近,你只需要逃避$:

\B\$\d+\b

在此处查看示例匹配:http ://regexhero.net/tester/?id=79d0ac3b-dd2c-4872-abb4-6a9780c91fc1

于 2010-05-13T20:26:03.567 回答
1

试试 ^\$\d+

其中 ^ 表示字符串的开头。

于 2009-03-05T16:09:55.920 回答