[英]Use PHP preg_match get a string between two other strings
我有包含網頁內容的變量$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>";
但是什么也沒得到,所以我認為這是問題所在。 有人可以幫忙嗎?
我假設第二個XXXXX
應該是YYYYY
,或者也許您只是說它可以是任何字符串。
首先,您確實應該為此使用解析器而不是正則表達式。 請查看這個經典的悲慘故事的原因。
其次,回答您的問題:添加?
在.*
之后,並在最終斜杠后使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.