2010-10-07 57 views
1

我正在學習正則表達式(http://www.regular-expressions.info/),並試圖找出如何匹配以下字符串中不包含的部分:一個包含q的字未被跟隨u正則表達式得到不匹配模式的字符串部分

我已經得到了這麼多,但無法弄清楚如何正確地反轉它。這個正則表達式能夠成功找到這個單詞。現在,我只需要弄清楚如何使它找到除字之外的字符串的其餘部分。建議?

(\w*(q(?!u))\w*) 

JAZzY 23 
JACKY 21 JIFFY 21 JUNKY 21 QUAKY 21 ZAPPY 21 ZAXES 21 ZINKY 21 ZIPPY 21 
FURZY 20 HAFIZ 20 QUACK 20 QUAFF 20 QUICK 20 QUIFF 20 WOOZY 20 
BOOZY 19 COZEY 19 CRAZY 19 ENZYM 19 FUZzY 19 HAMZA 19 JAMMY 19 JEMMY 19 JERKY 19 JIMMY 19 JIMPY 19 JOKEY 19 JUMPY 19 KUDZU 19 KYLIX 19 QOPHS 19 WHIZz 19 ZILCH 19 ZINCY 19 ZYMES 19 
+0

這不就是剛纔打電話_'getting與nothing'_替換匹配的單詞一個新的字符串?即一個正常的替換。如果你告訴我們你試圖用什麼語言,這個人可能會提供一個解決方案,如果它純粹是學術性的:匹配任何東西不是一個模式對於正則表達式來說是不可行的,儘管你可以用自己的工作來解決(或多或少)有時候工作在前面和後面。 – Wrikken 2010-10-07 23:10:57

回答

1

你需要指定一個語言(JavaScript的,PHP等)。

下面是做到這一點的JS的一種方法:(See it in action at jsfiddle

var Str = 'JAZzY 23 ' 
     + 'JACKY 21 JIFFY 21 JUNKY 21 QUAKY 21 ZAPPY 21 ZAXES 21 ZINKY 21 ' 
     + 'ZIPPY 21 FURZY 20 HAFIZ 20 QUACK 20 QUAFF 20 QUICK 20 QUIFF 20 ' 
     + 'WOOZY 20 BOOZY 19 COZEY 19 CRAZY 19 ENZYM 19 FUZzY 19 HAMZA 19 ' 
     + 'JAMMY 19 JEMMY 19 JERKY 19 JIMMY 19 JIMPY 19 JOKEY 19 JUMPY 19 ' 
     + 'KUDZU 19 KYLIX 19 QOPHS 19 WHIZz 19 ZILCH 19 ZINCY 19 ZYMES 19 ' 
     + 'risque 69 risqay 86 Qu 19 Qa 33' 
     ; 

var Filtered = Str.replace (/\b\w*q(?!u)\w*\b/ig, ""); 
alert (Filtered);