正则表达式考虑$以外的非字母数字字符

时间:2014-03-20 09:41:42

标签: c# .net regex

我有一个文字:

Revenue: $12.9 billion
Regex=====>Revenue\W+(\$*\s*\d+\s*(\.\s*\d+)*)\s*billion

现在我想要一个特定组中的12.9美元,但是使用\ W +后收入需要“:$”。 所以我想编写这样的正则表达式,它会考虑除“$”之外的所有非字母数字字符

我该怎么办?

2 个答案:

答案 0 :(得分:1)

[^\w$]这样的角色类会匹配任何不是单词字符或$的字符。此外,没有必要将\s*两次放在一起,或者让它出现在\W+(或[^\w$]+之后,因为前面的字符类无论如何都会吞噬任何空格字符:

Revenue[^\w$]+(\d+\s*(\.\s*\d+))\s*billion

答案 1 :(得分:0)

Revenue[^\w$]+(.\s*\d+\s*(\.\s*\d+))\s*billion

使用此,

.将匹配不匹配的$

演示:http://regex101.com/r/aQ8qP7

$12.9在第一组中被捕获