簡體   English   中英

php中的regexp對於@ \\\\ section {(。*?)} @ U不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM