所以我暂时没有做任何正则表达式,所以我想我会记住我的记忆。我正在尝试将a*b*c
之类的字符串转换为a<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}
放在星号之前,但这不起作用。也没有[^\\\\]
。
答案 0 :(得分:2)
尝试负面观察:
"/(?<!\\\\)\*([\s\S]*?)(?<!\\\\)\*/"
如果*
之前没有\
,则只匹配escaped backslash \\*bold* text
。