2016-12-01 66 views
0

內容「#menuHover; #menuHoverColor;」需要替換完全匹配只能使用preg_replace

我需要#fff更換第一#menuHover

當我使用str_replace它替換的內容全部「menuHover」字符串,但我需要更換隻有第一個。

+0

嗯..你試過str_replace函數也是這樣嗎? $ newData = str_replace(「menuHover;」,「ffff;」,$ data); –

+0

是的,它取代了第二個也 – Karthik

+0

只需添加分號:) –

回答

1

preg_replace。使用第4個參數(上限= 1)

例如:

$string = '#menuHover #menuHoverHover'; 

$replacedString = preg_replace('/menuHover/', 'fff', $string, 1); 

print_r ($replacedString); 

如果您想更換正是 「menuHover」 字符串,無論它的位置,您可以使用下面的代碼:

$replacedString = preg_replace('/#menuHover(?!\S)/', '#fff', $string, 1); 

另一個改進考慮分號:

$replacedString = preg_replace('/#menuHover([;]?)(?!\S)/', '#fff$1', $string, 1); 
+0

您可以與reg_exp preg_replace函數代碼爲我的概率 – Karthik

+1

[PHP代碼的沙盒(http://sandbox.onlinephpfunctions.com/code/534be43c548278701abc6763ecd01ebd99919aeb) –

0

我認爲str_replace就足夠了,只需添加分號:

$string = "#menuHover; #menuHoverColor;"; 
$newString = str_replace("menuHover;", "fff;", $string); 
echo $newString; 

或使用的preg_replace

$string = "#menuHover; #menuHoverColor;"; 
$newString = preg_replace("/menuHover/", "fff", $string, 1); 
echo $newString; 
1

使用單詞邊界:

$str = "#menuHover; #menuHoverColor;"; 
$str = preg_replace("/\bmenuHover\b/", "fff", $str); 
echo $str,"\n"; 
相關問題