2012-10-23 151 views
0

我想用另一个替换一些字符串。 我使用下面的代码:通过正则表达式标准查找几个单词php

$mc = 'Hello I have these bages: [A-561],[A-123],[A-1],[A-5234]'; 
$medal = '<img src="1" />'; 
$bages = preg_replace('/^\[A-[0-9]+\]/i',$medal,$mc); 
echo $bages 

它打印出这一点:

Hello I have these bages: [A-561],[A-123],[A-1],[A-5234] 

,如果我的话$ mc改变

$mc = "[A-561],[A-123],[A-1],[A-5234]"; 

然后打印出来:

<img src="1" />,[A-123],[A-1],[A-5234] 

我不知道为什么它像这样。我想将它们全部更改为替换字符串。

+0

你有一个''^在你的正则表达式。你知道这意味着什么吗? *另请参见[开源RegexBuddy替代品](http://stackoverflow.com/questions/89718/is-there)和[在线正则表达式测试](http://stackoverflow.com/questions/32282/regex-testing)对于一些有用的工具,或[RegExp.info](http://regular-expressions.info/)更好的教程。 – mario

回答

3

你的正则表达式中的^使正则表达式只匹配一个字符串的开始。

从正则表达式删除^

$bages = preg_replace('/\[A-[0-9]+\]/i',$medal,$mc); 
+0

非常感谢您的兄弟....它帮助我。我是正则表达式的noob –