[英]regexp in php doesn't work for @\\section{(.*?)}@U
我用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
您需要轉義\\
,因為否則它們將被php本身視為轉義符,然后被剝離:
$regexp = "@\\\\section{(.*)}@";
U
修飾符是不必要的,因為這會使.*?
再次貪婪,所以您正在反轉。 只是.*
也一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.