|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.09.2019, 09:14 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Помогите дописать регулярное выражение
Здравствуйте.
У меня на входе следующие строки: Код:
Для упрощения регулярки делаю такой предфильтр: Код:
Код:
Как можно запихнуть всё это в одну регулярку ? Что то вроде сделать не обязательным блок Код:
P. S. Так же я знаю, что можно сделать регулярку без предфильтра, но пока пусть будет так.
Подпись ? Не, не слышал ...
|
11.09.2019, 09:22 | #2 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Только что перепроверил, заработала группировка со скобками
Код:
Нужно что бы ловила только все символы (числовые, согласно имеющийся регулярке), не зависимо от их количества. UPD: можно добавить [^\d]{1} - но будет отлавливать первый символ за числом, и это ещё пол беды - его можно отбросить потом. Главная проблема заключается в том, что "ограничитель" нужно добавлять для двух вариантов (см. примеры), и тогда работать только двумя регулярками.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 11.09.2019 в 10:04. |
11.09.2019, 11:13 | #3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Сообщение полностью изменено.
В части регулярных выражений проблему кое-как решил. в четыре регулярки Но теперь я упёрся в проблему многобайтовости UTF-8, и сложностей работы со всем этим =) Теперь выяснилось, что в качестве разделителя чисел у меня есть строки с русскими Х. И функция str_replace здесь почему-то безсильна.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 11.09.2019 в 22:35. |
11.09.2019, 23:08 | #4 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Ага, я опять решил проблему сам ...
Что-бы не было проблем с кириллицей - нужно сначала выполнить все операции именно с кириллицей, а потом выполнять остальные операции. В моём случае, функция strtoupper убивала кириллицу, из-за чего функция str_replace не могла заменить нужные символы. Проблему регистра и кириллицы одновременно решаются функцией str_ireplace. Но если сильно надо - можно два раза вызвать функцию str_replace для замены кириллических символов верхнего и нижнего регистра.
Подпись ? Не, не слышал ...
|
12.09.2019, 08:20 | #5 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
А вот так вроде проще
Код:
И параметры для регекса gmu Количество пробелов между элементами можно любое.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. Последний раз редактировалось WorldMaster; 12.09.2019 в 08:23. |
12.09.2019, 14:59 | #6 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Да, может и проще ...
Но здесь не учитываются варианты что нужный фрагмент может быть в конце строки. Добавим необязательный блок - получаем те самые 2 регулярки. Должно быть в итоге 0. Какая разница, буду ли я потом вызывать trim, или же сначала выполню отсев пробелов ?
Подпись ? Не, не слышал ...
|
12.09.2019, 15:09 | #7 | |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Цитата:
trim как правило удаляет вначале и в конце строки. Для данной реги не имеет значение когда вы будете удалять пробелы. К тмоу же тут учтено что вмесо пробела может присутствовать какой либо невидимый символ.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
|
18.09.2019, 04:09 | #8 |
Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,457
|
Код:
Последний раз редактировалось uberchel; 18.09.2019 в 04:14. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите составить регулярное выражение | Metrologik | JavaScript, Ajax | 1 | 08.11.2017 15:28 |
Регулярное выражение | Xo66um | Общие вопросы C/C++ | 11 | 12.05.2016 16:23 |
Перл - Помогите написать регулярное выражение. | Троллев | Помощь студентам | 0 | 12.04.2016 00:35 |
Помогите подобрать регулярное выражение в Питоне | DarknessLORD11 | Помощь студентам | 0 | 20.12.2015 23:12 |
Помогите составить регулярное выражение | V-alterman | Общие вопросы по Java, Java SE, Kotlin | 0 | 04.12.2014 11:46 |