2012-08-08 81 views
-2

我有以下的正則表達式:正則表達式改善

/%%[\s\S]*?%%/i

這意味着要捕捉這些類型的字符串:

%%test%%

%%test2%%

然而,因爲這正則表達式上運行大字符串,有時會出現錯誤,例如,如果我有這個:

%test%% adhja kshdjah skdja %%test1%%它將返回%% adhja kshdjah skdja %%

,它應該永遠趕在他們的任何空間中的字符串,我怎樣才能改變我的正則表達式來僅把那些沒有空格?

+0

'[\ s \ S]'匹配空格和非空格?等於'.'? – 2012-08-08 07:52:36

+0

我在你的「錯誤」例子中沒有看到任何錯誤。你在開頭只有一個'%',所以分數是相匹配的,你可以看到。 – 2012-08-08 07:56:59

回答

1

對於非space和非%使用[^%\s]

/%%[^%\s]*?%%/ 
+0

如果在'%%'分隔符內允許單個百分號,那麼基本上可以在'^'之後取出百分號。 – tripleee 2012-08-08 08:06:41