У меня есть этот массив строк:
array("Foo", "Foo RH 80", "Foo Foo RH 50 Foo", "Foo (RH 80 + 10) foo");
Я ищу способ добавить тег следующим образом:
array("Foo", "Foo <b>RH 80</b>", "Foo Foo <b>RH 50</b> Foo", "Foo <b>(RH 80 + 10)</b> foo");
Я думаю, что могу сделать это с некоторым REGEX, но слишком сложно найти шаблон.
У вас есть идея?
Вы можете использовать регулярное выражение
/RH\s\d{2}|\(RH\s\d{2} \+ \d{2}\)/g
и замените на <b>$0</b>
Альтернатива использованию Regex:
Если начало вашей строки всегда одно и то же, как в вашем примере, вы можете использовать простые строковые функции:
function boldify($pattern, $array){
$new_array = array();
foreach($array as $a) $new_array[] = $pattern."<b>".substr($a,strlen($pattern))."</b>";
return $new_array;
}
Как насчет:
$str = preg_replace('/\(?\bRH \d+(?: \+ \d+)?\)?/', '<b>$0</b>', $str);