使用Regex和PHP将字符串的一部分加粗

时间:2015-10-05 17:06:08

标签: php regex

我的问题是,我需要一个粗体字符串的一部分。就我而言 6000 Luzern 。这是邮政编码和城镇名称。

<?php
$pattern = '/[0-9]{4}.*(?=,)/';
$replacement = '<strong>'.$pattern.'</strong>';
$subject = 'Hello 6000 Luzern, 0586464129';
echo preg_replace($pattern , $replacement , $subject);
?>

结果: 你好 / [0-9] {4}。*(?=,)/, 5564641

代码正在实现,我需要什么部分,但它怎么能大胆呢? 它应该是这样的:

Hello 6000 Luzern ,5564641

1 个答案:

答案 0 :(得分:1)

您可以将正则表达式用作:

$pattern = '/\b[0-9]{4}[^,]+\b/';

并替换为$0(匹配的字符串):

$replacement = '<strong>$0</strong>';

因为你需要在替换中使用匹配的反向引用。

现在代码:

echo preg_replace($pattern , $replacement , $subject);
//=> Hello <strong>6000 Luzern</strong>, <strong>0586464129</strong>

正则表达式\b[0-9]{4}[^,]+\b匹配:

\b       # word boundary
[0-9]{4} # 4 digits
[^,]+    # 1 or more of non-comma chars
\b       # word boundary