2011-07-16 268 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