Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex PHP*+;WordPress中的正则表达式修饰符_Regex_Wordpress - Fatal编程技术网

Regex PHP*+;WordPress中的正则表达式修饰符

Regex PHP*+;WordPress中的正则表达式修饰符,regex,wordpress,Regex,Wordpress,我已经和WordPress合作了一段时间了,在shortcode_顶部看到一个正则表达式,我不明白它的意思 这是shortcode_顶部的正则表达式: /\s*+(\[(?:$tagregexp)(?![\w-])[^\]\/]*(?:\/(?!\])[^\]\/]*)*(?:\/\]\\\\]。(?:[^\[[(?!\/\2\])[^\[[]*++\[\[\/\2\])+)\s*+//s 在这里,您将看到要匹配的正则表达式以及\s*+表单中的前导空格。*+(星号后跟加号)在这个正则表达式中是什

我已经和WordPress合作了一段时间了,在shortcode_顶部看到一个正则表达式,我不明白它的意思

这是shortcode_顶部的正则表达式:

/\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