我如何匹配(PCRE)兩個標籤之間的所有內容?用正則表達式匹配兩個標籤之間的所有內容?
我想是這樣的:(。*)!
< - - \ S * LoginStart \ S * > < - \ S * LoginEnd \ S * - >
但它對我來說並沒有太好的效果..
我對正規快車很陌生離子,所以我希望如果有人願意向我解釋我會如何實現這一點,如果它甚至可能與正則表達式。
謝謝
我如何匹配(PCRE)兩個標籤之間的所有內容?用正則表達式匹配兩個標籤之間的所有內容?
我想是這樣的:(。*)!
< - - \ S * LoginStart \ S * > < - \ S * LoginEnd \ S * - >
但它對我來說並沒有太好的效果..
我對正規快車很陌生離子,所以我希望如果有人願意向我解釋我會如何實現這一點,如果它甚至可能與正則表達式。
謝謝
$string = '<!-- LoginStart --><div id="stuff">text</div><!-- LoginEnds -->';
$regex = '#<!--\s*LoginStart\s*-->(.*?)<!--\s*LoginEnds\s*-->#s';
preg_match($regex, $string, $matches);
print_r($matches); // $matches[1] = <div id="stuff">text</div>
解釋:
(.*?) = non greedy match (match the first <!-- LoginEnds --> it finds
s = modifier in $regex (end of the variable) allows multiline matches
such as '<!-- LoginStart -->stuff
more stuff
<!-- LoginEnds -->'
PHP和正則表達式?下面是一些建議:
'/<!--\s*LoginStart\s*-->(.*)<!--\s*LoginEnd\s*-->/Us'
可能會更好 - 在U
資本使得正則非貪婪的,這意味着它會在第一<!--
可能停止工作。但重要的是s
,它告訴正則表達式匹配一個換行符與.
字符。
根據您對大小寫的確定程度,在末尾添加i
將使正則表達式搜索不區分大小寫。
我已經試過歐文的答案,但它的條件未能像
<!-- LoginStart --><div id="stuff">text</div><!-- LoginEnds -->"DONT MIND THIS"<!-- LoginStart --><div id="stuff">text</div><!-- LoginEnds -->
這包括行 「不介意這」 也是,那就是它涵蓋了第一個內部的所有內容 <! - LoginStart - >和最後<! - LoginEnds - >標籤
可以降價嗎? – 2008-11-13 19:51:39