2014-02-21 102 views
1

我不太確定我應該如何說出這個標題,道歉。 x_xPHP preg_match URL格式

我基本上試圖將字符串轉換爲類似於Reddit/Stackoverflow的格式化URL。

例如, [Hello World](http://google.com) = Hello World

以下兩項工作,但在組合在一起時不起作用。

preg_replace("/\[([^\]]+)\]/", ... //Works for [Hello World]

preg_replace("/\(([^\)]+)\)/", ... //Works for (Hello World)

preg_replace("/\[([^\]]+)\]/\(([^\)]+)\)/", ... //Doesn't work

正則表達式讓我困惑X_X幫助感激!

+0

您是否嘗試過'/ \ [([^ \]] +)\] \(([^ \)] +)\)/'?在中間刪除一個會導致語句錯誤的'/'。 – Jon

+2

它被稱爲降價,爲什麼不正確實施它,那麼你可以使用所有的降價來標記html功能https://github.com/michelf/php-markdown或更多的解析器可以在這裏找到http://stackoverflow.com/問題/ 5116187/how-to-parse-markdown-in-php –

+0

和這裏http://stackoverflow.com/questions/605434/how-would-you-go-about-parsing-markdown –

回答

0

使用此\[([^\[\]]*)\](.*)

$input_lines="[Hello World](http://google.com)"; 

preg_replace("/\[([^\[\]]*)\](.*)/", "$1", $input_lines); 
0
$str = '[Hello World](http://google.com)'; 
preg_replace('/\[([^\]]+)\]\(([^\)]+)\)/', '<a href="$2">$1</a>', $str);