preg_replace正确的正则表达式重复字符

时间:2012-06-25 03:34:17

标签: php regex preg-replace

好吧我再次陷入困境,这次是正则表达式的问题...正在搜索谷歌,正在搜索,但是没有一篇文章让我开心......所以长话短说:

  • §text=数据库条目字符串 - >可能是一切
  • $ text被解析,正则表达式应该替换2 *之间的所有内容:

    [BLA]。$ matchedtext。[泡壳

所以我试图找到正确的正则表达式,这就是我想出的:

$text= preg_replace('~(/\*([^\"]*?)\*/)~', "$1<b>$2</b>", $text);

每场比赛的2 *也应该消失:/ ...

显然它不起作用,否则我不会发布:D - &gt;有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能应该这样做:

preg_replace('/\*([^"*]*)\*/', '<b>\1</b>', $text);

对您之前的正则表达式的一些评论:

[^\"]*?

非贪婪*不是必需的;当您查看负字符集时,只需在字符集中添加“*”即可。此外,双引号不需要转义。

[^"*]*

您只需要记忆组来处理您想要记住的事物;在您的情况下,您不想知道您匹配开头和结尾的星号。所以你可以只用一个内存组完成整个匹配。