2011-07-16 266 views
1

我不是很正則表達式經歷了時間和IRC-尼克和我嘗試了很多匹配這樣的字符串:正則表達式匹配

16:02 <DJ_Bjarne> 

用正則表達式,但我沒有得到任何工作結果。 我想這是由

<strong>16:02&lt;DJ_Bjarne&gt;</strong> 

被替換爲在PHP中工作的正則表達式。 謝謝。

+0

發佈您到目前爲止所嘗試的內容,以便人們可以幫助您解決問題。 – Mat

+0

請編輯您的文章:do _not_使用html編碼。只需將你的例子和正則表達式粘貼爲,然後選擇整行並在編輯器中使用'{}'按鈕。 – Mat

回答

1
$post = "16:02 &lt; DJ_Bjarne&gt; hello mate!"; 
preg_replace("/(.*?&gt;)/", "<strong>$1</strong>", $post); 
1

這應該做你需要的東西:

$string = preg_replace('/[0-9]{1,2}:[0-9]{1,2} <.*?>/', '<strong>$0</strong>', $string); 
+0

$ 0?從何時起? – genesis

+0

$ 0指的是匹配的整個字符串。 $ 1是指第一個加括號的組。在你的情況下,這是同樣的事情,因爲你將所有的正則表達式包裝在括號中。就我而言,事實並非如此。 – EdoDodo

+0

啊!感謝您解釋:) – genesis

0

嘗試:

preg_replace('/[\d]{2}:[\d]{2} [\<][\w]+[\>]/', '<strong>${0}</strong>', $line) 
+0

這是怎麼評論?我給他的方式來取代他想要的尼克弦。這不是他所問的嗎? – casraf

0

ŸTooo complecated

$text = '16:02 &lt;DJ_Bjarne&gt;'; 
echo $text = preg_replace("/\A/",'<strong>',$text); 
//echo "<textarea>";echo $text;echo "</textarea>"; 
$text = preg_replace("/\Z/",'</strong>',$text); 
echo "<textarea>";echo $text;echo "</textarea>"; 

其簡單易懂,refference

+0

@Tjark S。::嘗試dis .. – K6t