3

次を含む長い正規表現があります(?:\S+ ){0,4}

それは一致するはずです:(すでにこれを正しく行っています)

2 Terry White 
Tramal 100 
Asmol 2.5 
2.5% 

またはそれに一致するもの。ただし、1 つの小数または価格は除きます。

一致するべきではありません: (この例外を行う方法がわかりません)

870
6.75
$17.60

それは可能ですか?

ご意見をお寄せいただきありがとうございます。興味のある方のために参考までに、これが使用されている最も短い「長い正規表現」の 1 つを次に示します (末尾近くで見つけることができます)。

^ {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}$
4

1 に答える 1

1

最初の失敗した例は整数のように見えるため、「単一の小数」が何を意味するのかわかりませんが、試してみてください:

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

あなたのコメントに基づいて、私は否定的な後読みがあなたが探しているものであるかもしれないと考えています:

(?<!\$?\d+(?:\.\d+)?)
于 2013-03-23T02:37:42.143 に答える