我的变量$Contents
包含网页的内容,我需要提取以下内容:
开始:<div class="XXXXX">
结束:<div role="XXXXX"'
YYYYY表示的字符串可以是数字,字符,空格,引号以及现代键盘上存在的任何内容。
目前我正在使用它:
preg_match("/<div class=\"XXXXX\">(.*)<div role=\"XXXXX\"/", $Contents, $match);
echo "<p>Event Title: $match[1]</p>";
但是什么都没有,所以我认为这是我的正则表达式的问题。有人可以帮忙吗?
答案 0 :(得分:0)
我假设第二个XXXXX
应该是YYYYY
,或者你只是说它可能是任何字符串。
首先,你真的应该使用解析器而不是正则表达式。请参阅this classic, sad tale了解原因。
其次,要回答您的问题:在?
之后添加.*
并在最后一个斜杠之后使用s
来匹配不同的行,例如:
$Contents = '<div class="XXXXX">
foo bar
<div role="alacadabra">baz';
preg_match("/<div class=\"XXXXX\">(.*)<div role=\".+\"/s", $Contents, $match);
echo "<p>Event Title: $match[1]</p>"; // outputs foo bar