PHP Regex没有反斜杠

时间:2010-10-26 17:48:29

标签: php regex escaping backslash

所以我暂时没有做任何正则表达式,所以我想我会记住我的记忆。我正在尝试将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}放在星号之前,但这不起作用。也没有[^\\\\]

1 个答案:

答案 0 :(得分:2)

尝试负面观察:

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

如果*之前没有\,则只匹配escaped backslash \\*bold* text

但是,这很脆弱;如果字符串是{{1}},它也会失败。