У меня есть следующая строка (с символами новой строки):
<a>something1</a>
<a>something2</a>
<a>something3</a>
Мне нужно сопоставить что-то 2 и что-то 3 и заменить его, но тогда у меня есть результат:
<a>something1</a>
<a>replacement2</a>
<a>replacement3</a>
но мне нужны только замены, а не что-то1. Есть 3000 таких строк, поэтому удаление этого заняло бы много времени. Есть ли у вас какие-либо идеи?
Ты можешь использовать preg_filter
функция сделать фильтрацию и замену за один раз:
$s = <<< EOF
<a>something1</a>
<a>something2</a>
<a>something3</a>
EOF;
$subject = explode("\n", $s);
echo implode("\n", preg_filter('~\bsomething([02-9])\b~', 'replacement$1', $subject));
<a>replacement2</a>
<a>replacement3</a>
Других решений пока нет …