2013-07-29 112 views
0

我想匹配不在字符串內的所有字母數字字符。所有外面的。不匹配字符串內的字母數字字符

\w+這將匹配所有字母數字字符也^\w+$將匹配字符串內的所有字母數字字符如何匹配只有外部的?

+2

我不確定我對字符串的定義是否與您的定義相同。你能舉出什麼應該和不應該匹配的例子嗎? – Jerry

回答

0
((?:\"[^\"]\")*(?:[^A-Za-z0-9]*)([A-Za-z0-9]*))* 

前兩個(?:)應該擺脫內部的雙引號,或者使用非字母數字文本的所有文字。內部()應該不包含雙引號內的字母數字字符。

請注意,我假設(?:)是非捕獲版本()

+0

它的工作原理,但是當我有更復雜的情況下,跳過//*//(註釋)行中的字母數字字符行的任何想法做到這一點? – TAB

+0

對於'/ *和* /',您可以試試並調整: '((?:\「[^ \」] \「)*(?:/ \ *(?:[^ *] | * [^/]))*(?:[^ A-Za-z0-9] *)([A-Za-z0-9] *))*' 對於//你需要使用某種形式的多行正則表達式,我不熟悉。 – tohava