2009-12-07 45 views
2

有沒有人知道如何編碼正則表達式(用於某些類似grep的工具),它將搜索單詞'vat',但不包括單詞'pri vat e'。我接管了一個項目,其中有數百個增值稅參考(一些硬編碼,有些沒有),並且由於英國的增值稅稅率在1月1日發生變化,我需要以正確的稅率更新項目源文件。在Visual Studio中全局搜索「vat」這個詞的時候,它也會返回包含一個private void定義的行。正則表達式否定問題

除此之外,我需要搜索'15'(當前的增值稅率),但我想排除任何在'15'之前或之後有任何數字的行。例如,0.15或15或15%是正確的,015或150或15a將是錯誤的。

正如你可以想象這是手動完成的任務,所以任何幫助都將不勝感激。

感謝,

+1

增值稅率(15)是否有可能改變?如果是這樣,你打算設置一個變量嗎? – 2009-12-07 22:56:08

+0

不需要複雜的正則表達式。僞代碼:如果在字符串中添加大括號,而不是在字符串中添加* vat * e,則執行一些操作。 – ghostdog74 2009-12-07 23:32:39

回答

1

使用Visual Studio(我讀你事先做過)你可以使用:

對於增值稅

〜(PRI)大桶〜(e)中(這也將排除如果期望 '瓦泰島' 因此只需取下〜(E))

而對於15

[^ 0-9a- z] 15 [^ 0-9a-z]

VS用於查找和替換的正則表達式語法與您的標準正則表達式不一樣,不知道MS爲什麼要這樣做,但他們做到了。

+0

謝謝,這正是我一直在尋找的! – tt83 2009-12-07 22:50:09

5
/\bVAT\b/ 

/\b(0\.)?15%?\b/ 

最後允許像 「0.15%」,但這些應該足夠少後過濾掉。正則表達式不是最好的工具,像「10 + 5」這樣的表達式呢?但是,如果它滿足您的需求,它至少易於使用!

+2

+1我會鏈接一個xkcd卡通,但這已經變得如此陳詞濫調...... – 2009-12-07 22:29:31

0

難道你不能搜索「增值稅」(空間增值稅空間)?

+0

不幸的是,在這種情況下不起作用,因爲我試圖搜索例如可能是'vat_rate'的變量定義。 – tt83 2009-12-07 22:47:14