正则表达式在::之间获取字符串,没有任何空格

时间:2016-01-31 22:53:54

标签: php regex preg-replace

我有正则表达式的麻烦。我正在编写微笑系统。并使用正则表达式从字符串中获取微笑代码,例如:laugh::haha:。 我想在::之间添加字符串,除了字母字符外没有任何内容。

<?php
$a="hello my dear :smile: ho r u?";
$a=preg_replace("/:([a-zA-Z]):/","<b>$1</b>",$a);
//or
$a=preg_replace("/:(\w):/","<b>$1</b>",$a);
echo $a;
?>

这些正则表达式都不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您必须允许与+量词的一个或多个匹配:
这应该有效:

$a = preg_replace("/:([a-zA-Z]+):/","<b>$1</b>",$a);