Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как с помощью preg_replace удалить русский текст?

Как с помощью preg_replace удалить русский текст?


     20.12.2021    Все вопросы » Общие вопросы по PHP    939

вопрос
Здравствуйте.

Пример:
English Name (Русское Название) (English Name Two)
English Name (Русское Название)


Помогите "соорудить" preg_replace для удаления "русских" названий от " (Р" (пробел, скобка открывается, русская буква) до ")" (закрывающей скобки) - включая данные символы. Русского названия не может быть в начале (всегда будет кострукция из "пробел, скобка открывается, русская буква"), но после него могут быть другие названия (как английские, так и русские).

Помогите пожалуйста...

Ответа пока нет


5 комментариев

lutskboy
Эксперт

lutskboy - 21 декабря 2021 14:09 -

$text = preg_replace('#\s\\([а-яёй\s]+\\)#iu', '', $text);

или
$text = preg_replace('#\s\\([а-я][^\\)]*\\)#iu', '', $text);

NONSENS
Юзер

NONSENS - 21 декабря 2021 17:27 -

В обоих случаях получаю:

Warning: preg_replace(): Compilation failed: invalid UTF-8 string at offset 5

В UTF всё переделать - не вариант (либо кракозябры из русского текста (зато ошибка не вылазиет), либо весь сайт переделывать)

dj-avtosh
PHP-developer

dj-avtosh - 22 декабря 2021 18:11 -

$text = preg_replace('#\s\\([\W\s]+\\)#i', '', $text);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 22 декабря 2021 18:17 -

А Вы можете написать в фомате:
что было -> что должно стать
что было -> что должно стать
что было -> что должно стать

Три примера разных - а то описание совсем странное.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

NONSENS
Юзер

NONSENS - 22 декабря 2021 21:05 -

Спасибо большое!

Ваш preg_replace прекрасно работает:

Извиняюсь, если недостаточно ясно объяснил "задачу":

English Name (Русское Название) (English Name Two) -> English Name (English Name Two)
English Name (Русское Название) (Русское Название 2) -> English Name
English Name (Русское Название) -> English Name


Ещё раз спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх