问题:
尝试使用正则表达式突出显示字符串中的最后3个数字。
代码:
<?php
show_source('regex.php');
$string = "
780155OVERF I000000
TRANFER DOMESTIC
000114
STHLM SE AB
";
?>
<!DOCTYPE html>
<html>
<head>
<title>Regex to match last 3 numbers</title>
<meta charset="utf-8">
</head>
<body>
<?php
echo nl2br(str_replace('/\d{3}(?=[^\d]+$)/g', '<span style="background-color:red;">$1</span>', $string));
?>
</body>
</html>
期望的结果:
数字114应该有红色背景颜色。
答案 0 :(得分:2)
主要错误:str_replace
无法使用正则表达式。使用preg_replace
:
$string = "
780155OVERF I000000
TRANFER DOMESTIC
000114
STHLM SE AB
";
// use `m` modifier as you have multiline string
// `g` modifier is not supported by preg_replace
echo preg_replace("/\d{3}(?=[^\d]+)$/m", '<span>$0</span>', $string);
答案 1 :(得分:1)
使用:
print nl2br(
preg_replace('/\d{3}(?=[^\d]+$)/s',
'<span style="background-color:red;">$0</span>',
$string)
);