所以我没有做任何正则表达式了一段时间,所以我想我刷了我的记忆。我试图将字符串转换像a*b*ca<b>b</b>c。我已经得到了该工作,但现在我想继续像a\*b\*c字符串演变为a\<b>b\</b>c,而是变成a*b*c。以下是我现在使用的代码:

     $string = preg_replace("/\*([\s\S]*?)\*/", "<b>$1</b>", $input);

我试过把这个\\\\{0}在星号之前,并没有奏效。也没有[^\\\\]

有帮助吗?

解决方案

尝试负回顾后:

"/(?<!\\\\)\*([\s\S]*?)(?<!\\\\)\*/"

如果它不是由一个前面*这仅匹配\

这是脆性的,虽然;如果字符串是escaped backslash \\*bold* text它也将失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top