Regex嵌套短代码不起作用


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']

演示

(?!'s*'['/)断言匹配之后不会有(零个或多个空格字符和[符号