正则表达式嵌套简码不起作用

Regex Nested Shortcode Does Not Work

有人能告诉我为什么这不起作用吗? - https://regex101.com/r/hJ5zN6/11

测试字符串:

[test][dzspgb_container][dzspgb_row][dzspgb_row_part part="1.4"][dzspgb_element text="whwaha" type_element="text"][/dzspgb_element][dzspgb_element text="test" type_element="text"][/dzspgb_element][/dzspgb_row_part][dzspgb_row_part part="1.4"][/dzspgb_row_part][dzspgb_row_part part="1.4"][/dzspgb_row_part][dzspgb_row_part part="1.4"][/dzspgb_row_part][/dzspgb_row][dzspgb_container]test second[/dzspgb_container][/dzspgb_container][/thisbreaks]

测试正则表达式:

*\[dzspgb_container(.*?)](.*?)\[\/dzspgb_container\](?!\s*\[\/)*

如果我们从字符串中删除 [/thisbreaks],它将起作用。

这是因为最后的否定前瞻断言。我建议您删除前瞻并使用如下所示的贪婪正则表达式模式。

\[dzspgb_container(.*?)](.*)\[\/dzspgb_container\]

DEMO

(?!\s*\[\/) 断言匹配后不会跟随(零个或多个 space 个字符和一个 [ 符号