2012-08-08 80 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