正则表达式捕获两个动态文本之间的文本

时间:2016-08-09 10:02:45

标签: php regex preg-match

首先,我想承认我不擅长正则表达式。

我有这个字符串:

[my_section title="Foo" the_id="123"]

有什么方法可以捕获除[/my_section][my_section title="Foo" the_id="123"]之外的所有内容,或者只是说出这两者之间的任何文字?

我对此的了解根本不起作用。

我无法使用文字[my_section,因为verify()之后的参数是动态的。

1 个答案:

答案 0 :(得分:1)

怎么样:

preg_match('~\[my_section[^\]]*\](.+?)\[/my_section\]~', $string, $match);

您想要的字符串位于$match[1]

如果您想匹配换行符,请添加s修饰符:

preg_match('~\[my_section[^\]]*\](.+?)\[/my_section\]~s', $string, $match);