我想搜索和PHP中的另一個替換的第一個字就像如下:PHP替換字符串的第一次出現,從第0位
$str="nothing inside";
通過搜索替換「什麼」到「東西」,並且不使用替代substr
輸出應該是:「裏面的東西」
我想搜索和PHP中的另一個替換的第一個字就像如下:PHP替換字符串的第一次出現,從第0位
$str="nothing inside";
通過搜索替換「什麼」到「東西」,並且不使用替代substr
輸出應該是:「裏面的東西」
使用preg_replace()
爲1的限制:
preg_replace('/nothing/', 'something', $str, 1);
更換正則表達式/nothing/
您要搜索的任何字符串。由於正則表達式總是從左到右進行計算,因此它將始終與第一個實例匹配。
如果您只是使用通用字符串,則此解決方案存在轉義問題,例如$和$等字符串在該字符串中。 http://stackoverflow.com/questions/1252693/php-str-replace-that-only-acts-on-the-first-match有一個更通用的解決方案。 – Anther 2012-10-17 18:55:37
This function str_replace
是你正在尋找的人。
preg_replace('/nothing/', 'something', $str, 1);
這將取代所有發生。 preg_replace('/ OR /','',$ str,1)替換第一次出現的'OR',但不僅僅是領先的出現 – Ben 2012-03-07 09:42:55
試試這個
preg_replace('/^[a-zA-Z]\s/', 'ReplacementWord ', $string)
它的作用是從開始選擇任何內容,直到第一白色空間和replcementWord更換。在replcementWord之後注意一個空格。這是因爲我們在搜索字符串
我也不如regEx。你可以試試這個鏈接[所以你想學習正則表達式?](http://www.stedee.id.au/Learn_Regular_Expressions) – 2012-03-07 09:34:08
對不起,但我無法正確格式化 – 2012-03-07 09:34:58
添加\s
的str_replace函數(http://php.net/manual/en/function.str-replace.php)的男子頁面上,你可以找到這個功能
function str_replace_once($str_pattern, $str_replacement, $string){
if (strpos($string, $str_pattern) !== false){
$occurrence = strpos($string, $str_pattern);
return substr_replace($string, $str_replacement, strpos($string, $str_pattern), strlen($str_pattern));
}
return $string;
}
ltrim()將刪除字符串開頭的不需要的文本。
$do = 'nothing'; // what you want
$dont = 'something'; // what you dont want
$str = 'something inside';
$newstr = $do.ltrim($str , $dont);
echo $newstr.'<br>';
ltrim()刪除給定列表中的所有字符,而不是字符序列。請更新您的答案。 – Calin 2013-08-22 09:35:53
我跑到這個問題,需要的解決方案,這是不是100%適合我,因爲如果字符串像$str = "mine'this
,該appostrophe會產生問題。所以我想出了一個痘痘絕招:
$stick='';
$cook = explode($str,$cookie,2);
foreach($cook as $c){
if(preg_match("/^'/", $c)||preg_match('/^"/', $c)){
//we have 's dsf fds... so we need to find the first |sess| because it is the delimiter'
$stick = '|sess|'.explode('|sess|',$c,2)[1];
}else{
$stick = $c;
}
$cookies.=$stick;
}
這難道不是最好的緊湊性和性能?
if(($offset=strpos($string,$replaced))!==false){
$string=substr_replace($replaced,$replacer,$offset,strlen($replaced));
}
爲什麼沒有substr? – lfxgroove 2012-03-07 09:27:37
[使用str \ _replace以便它只對第一個匹配起作用]的可能的重複?(http://stackoverflow.com/questions/1252693/using-str-replace-so-that-it-only-acts-on - 第一次匹配) – Bas 2015-04-24 14:08:25