有人可以告诉我为什么这不起作用? - 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]
,它就会有效。
答案 0 :(得分:0)
这是因为最后的负前瞻断言。我建议你删除前瞻,并使用如下的贪婪正则表达式。
\[dzspgb_container(.*?)](.*)\[\/dzspgb_container\]
(?!\s*\[\/)
声明匹配后不会(零个或多个空格字符和[
符号)