[英]I am practicing RegEx in PHP. Why doesn't this simple regExp work?
我正在用PHP練習RegEx。 我知道將它用於HTML字符串操作並不是那么好,但有時在我使用的PHP環境中DOMDocument不可用。
$a ='bsrc="lalala"';
$t = preg_replace('/(src="([^"]*)")/i', '\2', $a);
所以我試圖從字符串中獲取lalala
但由於某些原因它不起作用。 我得到了blalalaa
作為回報;
我試圖逃避"
和寫'/(src=\\"([^\\"]*)\\")/i'
但無濟於事。 我在preg_replace_callback
函數中執行此操作,這可能是原因嗎?
感謝任何幫助!
您應該將正則表達式更改為
src=\"([^\"]*)\"
最終的PHP必須是
$t = preg_replace('~src=\"([^\"]*)\"~i', '\2', $a);
如果你想獲得匹配,那么你需要使用preg_match
而不是preg_replace
:
$a ='<src="lalala"a';
if (preg_match('/<src="([^"]*)"/i', $a, $m))
print_r($m[1]);
這是因為您正在搜索<src
並且字符串沒有這個。 你的測試字符串應該是<src="lalala"
而不是bsrc..
嘗試這個:
$a ='bsrc="lalala"a';
if (preg_match('/src="(.*)"/i', $a, $matches))
{
if (isset($matches[1]))
{
echo "Found value: " .$matches[1]. "\n";
}
else
{
echo "Not found\n";
}
}
else
{
echo "Not found\n";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.