允许反斜杠正则表达式

时间:2014-11-08 19:17:43

标签: php regex

我有一个函数替换PHP中的caracters:

$texte = preg_replace('`\[math\](.+)\[/math\]`isU', '\( $1 \)', $texte);

但我会允许\,因为我的字符串看起来像这样:\frac{5}{2 \sqrt{5} } x_{k}

编辑1: 例如,用户编写以下BBcode:[math] \frac{5}{2 \sqrt{5} } x_{k} [math]它将在HTML中翻译为:\( \frac{5}{2 \sqrt{5} } x_{k} \)

编辑2: 这是功能:

$result = preg_replace('`\[math\](.*)\[/math\]`isU', '\( $1 \)', $text);

使用$text = "[math] \frac{5}{2 \sqrt{5} } x_{k} [/math]";返回\( frac{5}{2 sqrt{5} } x_{k} \) \已经消失。

路易斯

2 个答案:

答案 0 :(得分:1)

这样做:

$text = '[math] \frac{5}{2 \sqrt{5} } x_{k} [/math]';
$result = preg_replace('`\[math\](.*)\[/math\]`isU', '( $1 )', $text);
echo "result=$result<br>";

注意我已将输入字符串放在单引号中,因此反斜杠不会被解释为任何内容,并且您不希望替换字符串中包含反斜杠。希望这是你想要的。

答案 1 :(得分:0)

最后我发现,我必须使用

$texte = preg_replace('`\[math\](.*)\[/math\]`isU', '\( $1 \)', $texte);

但我已经把它展示给了texte:echo'<td>'.BBcode(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).'

我只需删除stripslashes函数,就像这样:

echo'<td>'.BBcode(nl2br(htmlspecialchars($data['post_texte']))).'

它的工作正常。