2011-06-13 63 views
0

我要匹配任一「INT(」或「DER(」註冊精通匹配多個實例

所以表達式必須匹配這些字符串

VVEH + int(ACC_X) + der(FL_WSP) 
VVEH + int(ACC_X) + int(FL_WSP) 
VVEH + der(ACC_X) + der(FL_WSP) 

而不是這些

VVEH + int(ACC_X) + log(FL_WSP) 
VVEH + der(ACC_X) + log(FL_WSP) 
的多個實例
+1

如果你還提到你正在使用什麼樣的正則表達式,它可能會有所幫助。它是perl?javascript?.Net?別的東西? – 2011-06-13 10:24:03

+0

I' m使用Qt庫在C++ – 2011-06-13 10:32:13

回答

1
VVEH(\+ (int|der)\([^)]+\)){2,} 


VVEH   #Initial string 
(
    \+   #Escape the 'plus' 
    (int|der) #Either of your function names 
    \(   #Escape the bracket 
    [^)]+  #Match anything inside the brackets 
    \)   #Escape the bracket 
){2,}   #All of that stuff above at least twice 
+0

這似乎是正確的,但它不適用於我,它只適用於{1,}。我認爲可能是QRegExp引擎的限制/錯誤。無論如何謝謝您的明確解釋。 – 2011-06-14 09:08:57