2013-08-06 33 views
2

我見過有關反轉正則表達式的一些問題,但我無法將解決方案應用於OpenRefine並使其正常工作。OpenRefine:反轉正則表達式

舉例來說,假設我有一個郵政編碼字段,大部分的條目的形式爲

^\d{5}-\d{4}$ 

我要過濾掉所有的條目,看看還剩下什麼比使用GREL正則表達式。如何創建一個正則表達式來查找Openrefine中沒有上述形式的所有字符串?

+0

您的引擎是否支持負面展望? –

+1

OpenRefine合併了Java.Util.regex,所以我會假定它支持負向預覽。 –

回答

2

您可以使用負面搜索作爲匹配而不是某個子字符串的方法。在你的情況下,它會匹配沒有5位數字的所有內容,後面跟着4個數字。

^((?!\d{5}-\d{4}).)*$

沒有一定的串是簡單地替換子與""另一種變通匹配的一切,然後再抓住所有的條目。

+0

這很好用!謝謝。有沒有辦法修改它只返回非空條目(也不符合該模式)? – Rob

+0

很好用,你可以用'+'替換'*',並且也應該忽略所有非空條目。 –

+0

完美。謝謝! – Rob