使用PHP捕获相同字符串的两个部分

时间:2016-10-18 21:45:38

标签: php

我有一个包含此结构的列表

S

如何捕获字符串中的数字并在跨度中包裹?所以结构会这样结束:

Boss: (test 23, of 2014)

Boss: (test 42, of 2015)

Boss: (test 70, of 2016)

2 个答案:

答案 0 :(得分:2)

此功能可以在这里提供帮助

第一步:

preg_replace('# ([0-9]{2}),#','<span class="test_$1">$1</span>',$input);

第二步:

preg_replace('# ([0-9]{4})#','<span class="year_$1">$1</span>',$input);

答案 1 :(得分:1)

你可以逃脱这个单线:

$input = "Boss: (test 23, of 2014)";

$output = preg_replace(
    '/Boss: \(test (\d+), of (\d{4,4})\)/',
    'Boss: (test <span class="test_$1">$1</span>, of <span class="year_$2">$2<span>)',
    $input);

您可能希望对空白区域进行此容错,即使用\s+而不是硬编码空格来允许多个空格,制表符等。