使用正则表达式和PHP将字符串的一部分加粗
我的问题是,我需要一个粗体字符串的一部分。在我的情况下,6000卢塞恩。这是邮政编码和城镇名称使用正则表达式和PHP将字符串的一部分加粗,php,regex,Php,Regex,我的问题是,我需要一个粗体字符串的一部分。在我的情况下,6000卢塞恩。这是邮政编码和城镇名称 <?php $pattern = '/[0-9]{4}.*(?=,)/'; $replacement = '<strong>'.$pattern.'</strong>'; $subject = 'Hello 6000 Luzern, 0586464129'; echo preg_replace($pattern , $replacement , $subject); ?&
<?php
$pattern = '/[0-9]{4}.*(?=,)/';
$replacement = '<strong>'.$pattern.'</strong>';
$subject = 'Hello 6000 Luzern, 0586464129';
echo preg_replace($pattern , $replacement , $subject);
?>
结果:
你好/[0-9]{4}.*(=,)/,5564641
代码正在意识到,我需要什么部分,但它如何才能使其大胆?
应该是这样的:
您好,您可以将您的正则表达式用作:
$pattern = '/\b[0-9]{4}[^,]+\b/';
并替换为$0
(匹配字符串):
在替换参数中使用html标记?!你推荐什么?非常感谢阿努巴瓦。我使用以下命令:$pattern='/[0-9]{4}.*(=,)/';它非常适合我的情况。谢谢你的解释;-)我发现了另一个模式,它匹配得更直:$pattern='/[0-9]{4}([A-Z])\w+/';在某些情况下,另一种模式不会在第一个逗号处停止。希望这对其他人也有帮助。@anubhava如果你有时间,你能回答我的问题吗?
$replacement = '<strong>$0</strong>';
echo preg_replace($pattern , $replacement , $subject);
//=> Hello <strong>6000 Luzern</strong>, <strong>0586464129</strong>
\b # word boundary
[0-9]{4} # 4 digits
[^,]+ # 1 or more of non-comma chars
\b # word boundary