php正则表达式奇怪的错误

时间:2011-04-06 12:47:20

标签: php regex

我使用此类正则表达式$msg = preg_replace('/<b>(\w)<\/b>/', '9999', $msg);来替换<b>test</b>,但不会替换它。为什么呢?

4 个答案:

答案 0 :(得分:5)

您错过了数量令牌。这只会匹配<b>标记之间的一个字符长字符串。

$msg = preg_replace('/<b>(\w*)<\/b>/', '9999', $msg); 

答案 1 :(得分:0)

试试这个

$msg = preg_replace('#<b>(\w)*<\/b>#', '9999', $msg);

答案 2 :(得分:0)

您的\w不匹配。我现在没有找到我的正则表达式手册,但使用类似.*的内容。

答案 3 :(得分:0)

注意\ w +

之后的加号
 $msg = preg_replace('/<b>(\w+)<\/b>/', '9999', $msg);