【发布时间】:2011-09-12 08:43:17
【问题描述】:
我的一些 HTML 文件包含如下字符串:
{foreach $any_kind_of_charaters}
Any kind of string including "\n\r" and spaces here
{/foreach}
我想在他们身上应用PHP's preg_match_all,并想返回一个漂亮的array,如下所示
Array
(
[0] => {foreach $any_kind_of_charaters}
Any kind of string including "\n\r" and spaces here
{/foreach}
[1] => any_kind_of_charaters
[2] => Any kind of string including "\n\r" and spaces here
)
这个正则表达式:/\{foreach\s+\$(.*)\}\s+(.*)\s+\{\/foreach\}/ 对我来说没问题,
但是当我在{foreach}{/foreach} 标签之间添加新行(\n)时它失败了。
非常感谢您的帮助,谢谢。
使用“S”修饰符后的数组
Array
(
[0] => {foreach $any_kind_of_charaters}
Any kind of string including "\n\r" and spaces here
{/foreach}
[1] => any_kind_of_charaters}
Any kind of string including "\n\r" and spaces here
[2] =>
)
看array 中的second key 包含不必要的数据,而array 中的last key 完全是空的。
【问题讨论】:
标签: php regex preg-match-all