2013-08-12 113 views
2

我有下一個正則表達式排除正則表達式組值

\w*\|(?<PORT>\w*)\|(?<NAME>\w*)\| 

我想獲得任何匹配除非PORT等於220

例如:

0|220|Camry| - 匹配必須排除

0|112|Polo| - 可以匹配

回答

4

使用負面預測:

\w*\|(?!220\|)(?<PORT>\w*)\|(?<NAME>\w*)\| 
    ^^^^^^^^^ 
+0

這不符合我的預期。這個正則表達式返回匹配但是有空的PORT組。我將完全排除匹配 – Polaris

+0

在正則表達式中有一個額外的'('',應該是:'\ w * \ |(?!220 \ |)(? \ w *)\ |(? \ w *) \ |'。 –

+0

@Polaris,這個按預期工作 –