2011-11-26 114 views
3

我有一个PHP页面正在读取存储在MYSQL数据库表中的文本。 文字可能是这个样子正则表达式只检查每行的第一个匹配

Bob: Hi blah blah 
(Bob walking around) 
Fred Johnson: blah blah blah 
Bob: Something something: something 

我想做的preg_replace在每行第一个冒号之前出现大胆的一切。 所以在这种情况下,只有人名是大胆而最后一行“一些东西”不会是大胆

我现在已经在每个任何冒号之前出现线条加粗一切

$reg='(.*\w:)'; 
$text = preg_replace("/".$reg."/", "<b>\${1}</b>", $text); 

回答

2

你可以使用:

$reg='^([^:]*:)'; 

See it

+0

如果我想冒着冒险一起冒险怎么办?除了在输出 – abney317

+0

@ abney317上添加一个冒号:在'(...) – codaddict

0

^符号用于匹配的开始一条线。把它放到你的正则表达式的开头,它将确保匹配从当前行的开始处开始:-)