簡體   English   中英

使用PHP preg_match獲取其他兩個字符串之間的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM