0

我用 PHP 写了一个简单的正则表达式脚本:

<?php  
$string = "\section{Test 1} 
sdfgsdfg";  
$regex = "@\\section{(.*?)}@U";  
$replace = "$1jksdfahlkjh";  
$newString = preg_replace ($regex, $replace, $string, -1 );  
?> 

见:http ://regexp-tester.mediacix.de/t287

使用

echo $newString;

只给我

\section{测试 1} sdfgsdfg

正则表达式模式,如

$bbcode = array(

"/\[b\](.*?)\[\/b\]/is" => "<strong>$1</strong>",
"/\[u\](.*?)\[\/u\]/is" => "<u>$1</u>",
"/\[url\=(.*?)\](.*?)\[\/b\]/is" => "<a href='$1'>$2</a>"

);
$text = "[b]Text[/b][u]Text[/u]";

$text = preg_replace(array_keys($bbcode), array_values($bbcode), $text);
echo $text;

效果很好。有什么解决办法吗?我不想写一个完整的 LaTeX-Parser,但我想替换那些 "\section{...}"-Strings

4

1 回答 1

1

您需要转义\'s,否则它们将被 php 本身视为转义然后剥离:

$regexp = "@\\\\section{(.*)}@";

修饰符是不必要的U,因为这会使.*?贪婪再次出现,因此您正在反转反转。效果.*也很好。

于 2012-05-13T17:40:11.843 回答