Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Заменить все тире между английскими буквами

Вася Б Мастер (1480), на голосовании 2 года назад
Хочу заменить все тире между английскими буквами на звездочку, но не получается. Что не так?
$text = preg_replace('/(Q|W|E|R|T|Y|U|I|O|P|A|S|D|F|G|H|J|K|L|Z|X|C|V|B|N|M)-(Q|W|E|R|T|Y|U|I|O|P|A|S|D|F|G|H|J|K|L|Z|X|C|V|B|N|M)/ismU','*',$text);
Голосование за лучший ответ
Самый День Оракул (99750) 2 года назад
<?php
$text = "A-bddsdd-Ierej-dfd-REEk-asd-afg-m";

print preg_replace ( "/([a-zA-Z])-([a-zA-Z])/", "\\1*\\2", $text );
?>
Саня Семенов Оракул (60497) 2 года назад
исправил ошибки в регулярке https://regex101.com/r/hQ5pq0/1 осталось ее правильно в пхп воткнуть но судя по примеру в вопросе у тебя это не получается
Денис Попов Мастер (1162) 2 года назад
найти '(первую букву) -(вторую букву)', заменить на '*'.
replace: ага, нашел по шаблону G-H, заменить на... а что заменить? куда заменить?

Грубо говоря, каждый фрагмент в скобках, нумеруеца от 1 до N.
И раз хочешь заменить тире между фрагментами, то надо это указать, что между найденными 1м и 2м фрагментами поставит *: "\\1*\\2".
Похожие вопросы