Regex PHP*+;WordPress中的正则表达式修饰符
我已经和WordPress合作了一段时间了,在shortcode_顶部看到一个正则表达式,我不明白它的意思 这是shortcode_顶部的正则表达式:Regex PHP*+;WordPress中的正则表达式修饰符,regex,wordpress,Regex,Wordpress,我已经和WordPress合作了一段时间了,在shortcode_顶部看到一个正则表达式,我不明白它的意思 这是shortcode_顶部的正则表达式: /\s*+(\[(?:$tagregexp)(?![\w-])[^\]\/]*(?:\/(?!\])[^\]\/]*)*(?:\/\]\\\\]。(?:[^\[[(?!\/\2\])[^\[[]*++\[\[\/\2\])+)\s*+//s 在这里,您将看到要匹配的正则表达式以及\s*+表单中的前导空格。*+(星号后跟加号)在这个正则表达式中是什
/\s*+(\[(?:$tagregexp)(?![\w-])[^\]\/]*(?:\/(?!\])[^\]\/]*)*(?:\/\]\\\\]。(?:[^\[[(?!\/\2\])[^\[[]*++\[\[\/\2\])+)\s*+//s
在这里,您将看到要匹配的正则表达式以及\s*+
表单中的前导空格。*+
(星号后跟加号)在这个正则表达式中是什么意思?仅供参考,网站www.regexr.com说*+
是无效的修饰符
谢谢!在PCRE中,量词
+
在另一个量词之后(或者*
或者+
或者?
或者甚至{m,n}
)实际上修改了前面的量词,使得它现在在所有格上匹配
*+
表示0或更多,没有回溯
回溯是正则表达式中的基本过程之一。假设您将abcbaba
作为字符串,并使用正则表达式*bc
发动机将按照箭头移动,首先使用*
:
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
此时,它无法匹配更多字符,因此它将一次回溯一个字符,以便能够匹配正则表达式中的b
a b c b a b a
^
否b
,继续:
a b c b a b a
^
在那里,b
匹配,因此它尝试匹配c
,但找不到匹配项。它将再次回溯,并在几步之后
a b c b a b a
^
因此,*
最终只匹配了a
使用*+
,您可以得到*
以匹配第一种情况下的所有内容
a b c b a b a
^
但是不能匹配更多,并且禁止对其进行回溯。因此匹配失败
有时,你想回溯,但有时你不想,相反,这是一个麻烦。这就是为什么你有占有量词和原子群来加速事情。在PCRE中,量词
+
在另一个量词之后(或者*
或者+
或者?
或者甚至{m,n}
)实际上修改了前面的量词,使其现在在所有格上匹配
*+
表示0或更多,没有回溯
回溯是正则表达式中的基本过程之一。假设您将abcbaba
作为字符串,并使用正则表达式*bc
发动机将按照箭头移动,首先使用*
:
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
此时,它无法匹配更多字符,因此它将一次回溯一个字符,以便能够匹配正则表达式中的b
a b c b a b a
^
否b
,继续:
a b c b a b a
^
在那里,b
匹配,因此它尝试匹配c
,但找不到匹配项。它将再次回溯,并在几步之后
a b c b a b a
^
因此,*
最终只匹配了a
使用*+
,您可以得到*
以匹配第一种情况下的所有内容
a b c b a b a
^
但是不能匹配更多,并且禁止对其进行回溯。因此匹配失败
有时,你想回溯,但有时你不想,相反,这是一个麻烦。这就是为什么你有占有量词和原子群来加速事情。在PCRE中,量词
+
在另一个量词之后(或者*
或者+
或者?
或者甚至{m,n}
)实际上修改了前面的量词,使其现在在所有格上匹配
*+
表示0或更多,没有回溯
回溯是正则表达式中的基本过程之一。假设您将abcbaba
作为字符串,并使用正则表达式*bc
发动机将按照箭头移动,首先使用*
:
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
此时,它无法匹配更多字符,因此它将一次回溯一个字符,以便能够匹配正则表达式中的b
a b c b a b a
^
否b
,继续:
a b c b a b a
^
在那里,b
匹配,因此它尝试匹配c
,但找不到匹配项。它将再次回溯,并在几步之后
a b c b a b a
^
因此,*
最终只匹配了a
使用*+
,您可以得到*
以匹配第一种情况下的所有内容
a b c b a b a
^
但是不能匹配更多,并且禁止对其进行回溯。因此匹配失败
有时,你想回溯,但有时你不想,相反,这是一个麻烦。这就是为什么你有占有量词和原子群来加速事情。在PCRE中,量词
+
在另一个量词之后(或者*
或者+
或者?
或者甚至{m,n}
)实际上修改了前面的量词,使其现在在所有格上匹配
*+
表示0或更多,没有回溯
回溯是正则表达式中的基本过程之一。假设您将abcbaba
作为字符串,并使用正则表达式*bc
发动机将按照箭头移动,首先使用*
:
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
a b c b a b a
^
此时,它无法匹配更多字符,因此它将一次回溯一个字符,以便能够匹配正则表达式中的b
a b c b a b a
^
否b
,继续:
a b c b a b a
^
在那里,b
匹配,因此它尝试匹配c
,但找不到匹配项。它将再次回溯,并在几步之后
a b c b a b a
^
因此,*
最终只匹配了a
使用*+
,您可以得到*
以匹配第一种情况下的所有内容
a b c b a b a
^
但是不能匹配更多,并且禁止对其进行回溯。因此匹配失败
有时,你想要回溯,但有时,你不想,相反,这是一个麻烦。这就是为什么你有占有量词和原子群,以加快事情的发展。谢谢,这是有道理的:)@Mairel