2014-11-08 2 views
0

Я функция которым заменить caracters в PHP:Разрешить обратный слэш регулярное выражение

$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} \)

EDIT 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} \) \ исчез.

Louis

+0

Я не понимаю, в чем проблема. –

+0

Двойная обратная косая черта? (например, \\) –

+0

Ваше регулярное выражение выглядит как его для bbcode, вы скопировали неправильный материал? – sln

ответ

0

Наконец я нашел, что я должен использовать

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

Но я поместил это, чтобы показать $ подробнее: echo'<td>'.BBcode(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).'

я должен просто удалить stripslashes функцию следующим образом:

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

И это прекрасно работает.

1

Это будет делать это:

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

Примечание Я поставил входную строку в одинарные кавычки, так что обратные косые не интерпретируются, как и все, и вы не хотите обратную косую черту в заменяющей строке. Надеюсь, это то, что вы хотите.

Смежные вопросы