php - preg_replace - 如何匹配任何不是\*\*的东西

标签 php regex preg-replace

我似乎无法找出正则表达式来匹配格式中的任何字符串

**(anything that's not **)**

我试过在 php 中这样做

$str = "** hello world * hello **";
$str = preg_replace('/\*\*(([^\*][^\*]+))\*\*/s','<strong>$1</strong>',$str);

但没有进行字符串替换。

最佳答案

您可以使用 assertion ?!与字符配对 .占位符:

= preg_replace('/\*\*(((?!\*\*).)+)\*\*/s',

这基本上意味着匹配任意数量的任何东西(.)+ ,但是 .永远不能占据 \*\* 的位置

关于php - preg_replace - 如何匹配任何不是\*\*的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169925/

相关文章:

javascript - 为什么 PHP json_encode 会忽略空数组?

regex - dart 正则表达式匹配并从中获取一些信息

php - 如何制作 seo 友好的 url

php - 如何删除与 preg_replace(); 的链接?

php - 搜索多个数据库以输出最低值

PHP pthreads 工作很奇怪

php - 过滤数据库行中的单词,并统计它们

python - Python 是否支持正则表达式中的条件结构?

c++ - 将字符串中的数据提取到映射中的有效方法是什么?

php - 删除字符串中 bbcode 标签之间的空格