繁体   English   中英

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

[英]preg_replace proper regex for repeating character

好吧,我再次陷入困境,这次是正则表达式的问题...正在搜索google,正在搜索SO,但是没有让我感到高兴的帖子...因此,总而言之:

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

    [bla]。$ matchedtext。[blub]

因此,我试图为此找到合适的正则表达式,这就是我想出的:

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

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

显然这是行不通的,否则我不会发布:D->有什么想法吗?

这可能应该这样做:

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

关于您以前的正则表达式的一些评论:

[^\"]*?

非贪婪*是不必要的; 当您查看否定字符集时,只需在字符集内添加“ *”。 另外,双引号不需要转义。

[^"*]*

您只需要为想要记住的事情准备记忆组即可。 在您的情况下,您不想知道您匹配了一个开始和一个结束星号。 因此,您只需要一个内存组就可以完成整个匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM