我希望在正则表达式中有一部分多行
<?php
function bloggerLoop ( $matches ) { print_r ( $matches ) ; }
$theme = preg_replace_callback(
"#<b:loop values='data:(.*)' var='(.*)'>(.*?)</b:loop>#i",
"bloggerLoop",
$theme
);
?>
这就是我所拥有的,但b:loop
在模板中不止一次,这个正则表达式会跳过所有循环并创建一个“大”循环,但我只需要一个“部分”。
有什么需要:
<b:loop values='data:x' var='x'>MULTILINE</b:loop>
需要解析的文件是:http://pastebin.com/a3g3G1uE
我希望你能帮助我使用正则表达式。
坦克。
-Wesley
答案 0 :(得分:1)
正则表达式不是这个的工具。对于基本的Regex,HTML标记结构太复杂了,您应该尝试一些HTML DOM库(如PHP Simple HTML DOM Parser)来进行HTML DOM工作。
$html = file_get_html('http://pastebin.com/raw.php?i=a3g3G1uE');
foreach($html->find('b:loop') as $element)
echo $element->values. '<br>';
查看我的example了解您的具体案例,并阅读documentation。