正则表达式匹配任何单词组合但不是单个小数

时间:2013-03-23 02:33:24

标签: c# regex

我有一个包含(?:\S+ ){0,4}

正则表达式

那应该匹配:(它已经正确地这样做了)

2 Terry White 
Tramal 100 
Asmol 2.5 
2.5% 

或与之匹配的任何内容,除了一个小数或价格。

它不应该匹配:(我不知道如何做这个例外)

870
6.75
$17.60

这甚至可能吗?

感谢大家的意见。对于那些好奇的人来说,这是其中最短的“长正则表达”之一(你可以在最后找到)

^ {0,5}(\d{4}[A-Z]) +((?:\S+ )+(?: {0,10}K\+)?) *(\.\.|\d+) +(?:[A-Z#\*] *)?(\.\.|\d+(?:\.\d{1,4})?) +(?:[ab] *)?((?:\S+ ){0,4}) *([A-Z]{2}) {0,10}$

1 个答案:

答案 0 :(得分:1)

我不确定“单个小数”是什么意思,因为你的第一个失败的例子似乎是一个整数,但你可能会尝试:

^(?!\$?\d+(?:\.\d+)?$).+$

根据您的评论,我认为负面的观察可能更多地是您正在寻找的东西:

(?<!\$?\d+(?:\.\d+)?)