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

をエスケープする必要があります\。そうしないと、すでに php 自体によってエスケープとして扱われ、取り除かれます。

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

U修飾子は不要です。これにより、貪欲.*?が再び発生するため、逆転を逆転させています。同様.*に機能します。

于 2012-05-13T17:40:11.843 に答える