2016-09-26 6 views
1

Как я могу заменить текст, например: c2stackoverflow кRegex чтобы соответствовать акцентами, пространства

span style="color:#ffdc50">stackoverflow</span>'

Я пытаюсь сделать это:

<?php 

$string = "c2stackoverflow";  
$string = preg_replace("/c2([A-Za-záàâãéèêíïóôõöúçñÁÀÂÃÉÈÍÏÓÔÕÖÚÇÑ ])+$/", '<span style="color:#ffdc50">$1</span>', $string);  
echo $string; 

Но выход:

<span style="color:#ffdc50">w</span> 

ответ

2

Поскольку ваши оригинальные регулярных выражений показывает (по его окончательным $), который вы хотите заменить весь remainging набор символов после c2, вы можете просто использовать это:

$string = preg_replace("/c2(.*)$/", '<span style="color:#ffdc50">$1</span>', $string); 

Обратите внимание, что я заменил + от *, так что даже строка типа c2 будет заменена на <span style="color:#ffdc50"></span>.

+0

Hi. Ваш пример выглядит простым и чистым, но не работает должным образом. –

+0

@AmandaThompson Упс ... так что происходит? – cFreed

+0

@AmandaThompson Не против, я обнаружил, что не так. Попробуйте с измененным регулярным выражением. – cFreed

1

Просто замените плюс символ следующим образом:

$string = preg_replace("/c2([A-Za-záàâãéèêíïóôõöúçñÁÀÂÃÉÈÍÏÓÔÕÖÚÇÑ ]+)$/", '<span style="color:#ffdc50">$1</span>', $string); 
Смежные вопросы