我只想知道,preg_replace函數的替換是什麼。mb_ereg_replace獲取匹配
有沒有可能得到這個?
例如:
$string = "test text 12345";
$string = mb_ereg_replace('#text|test#', '$1-test2',$string);
我想知道, 「文本」 和 「試驗」 是否匹配?或者正在調用preg_match absoulutely是必要的?
我只想知道,preg_replace函數的替換是什麼。mb_ereg_replace獲取匹配
有沒有可能得到這個?
例如:
$string = "test text 12345";
$string = mb_ereg_replace('#text|test#', '$1-test2',$string);
我想知道, 「文本」 和 「試驗」 是否匹配?或者正在調用preg_match absoulutely是必要的?
您可以通過引用計數變量傳遞到了preg_replace這將返回發生的匹配/替換次數。
見http://php.net/manual/en/function.preg-replace.php
$string = "test text 12345";
$count = 0;
$string = preg_replace('text', 'test2', $string, -1, $count);
echo $count; // 1
請注意,這個答案是針對原始preg_replace問題 – hafichuk
謝謝,但它沒有提供匹配的短語。 :) – MnomrAKostelAni
@maka我不知道我明白。你知道匹配的短語是什麼:'test'。僅供參考,我建議您刪除此問題,因爲您對它所做的更改已使所有給出的答案無效。 – hafichuk
那麼...你可以用preg_replace_callback()
來代替,這樣你就可以爲每一個匹配調用一個自定義函數。然後,您將能夠「看到」比賽以及以您想要的方式替換比賽。
謝謝,但我使用mb_ereg_replace,並且我找不到一個mb_ereg_replace_callback函數... – MnomrAKostelAni
如果它不是您想要查找的模式,而只是字符串中的文本,則可以使用strstr
。
$findthis = "Apple";
$container = "Apple Orange Kiwi";
if (strstr($container,$findthis))
echo $findthis.' is present';
else
echo 'Not found';
}
對不起,但它是一個模式 – MnomrAKostelAni
好的,然後不要我的答案。 :) – djdy
使用preg_match()
來測試,如果你想獲得問題preg_replace_callback()
這也是一個解決方案,然後preg_replace()
。
如果所有你想要做的是:
text
→ test2
)和在這種情況下,我會簡單地使用str_replace()
更換,隨後strcmp()
告訴字符串是否改變(即,進行了替換。)
試試這個:
$string = 'test text 12345';
if ($string != ($replaced = preg_replace('/text/', 'test2', $string))) {
echo 'text was replaced';
}
但如果你真的不需要了preg_replace,你應該使用或的strstr stristr。
你想匹配還是替換?或者你想知道它是否真的取代了什麼?如果是這樣,你可以在替換之前和之後比較$ string。 – Znarkus
我想替換,並匹配替換...但對我來說,它看起來不好,當我打電話替換和匹配功能,因爲我認爲他們做同樣=>匹配 – MnomrAKostelAni