1

所以我有一段时间没有做任何正则表达式,所以我想我会重温一下我的记忆。我正在尝试将字符串转换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}放在星号之前,但没有用。也没有[^\\\\]

4

1 回答 1

2

尝试消极的回顾:

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

这仅匹配 a*如果它前面没有 a \

不过,这很脆弱;如果字符串是 . 它也会失败escaped backslash \\*bold* text

于 2010-10-26T17:49:58.203 回答