![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Здравствуйте.
У меня на входе следующие строки: Код:
Для упрощения регулярки делаю такой предфильтр: Код:
Код:
Как можно запихнуть всё это в одну регулярку ? Что то вроде сделать не обязательным блок Код:
P. S. Так же я знаю, что можно сделать регулярку без предфильтра, но пока пусть будет так.
Подпись ? Не, не слышал ...
|
![]() |
![]() |
![]() |
#2 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Только что перепроверил, заработала группировка со скобками
Код:
Нужно что бы ловила только все символы (числовые, согласно имеющийся регулярке), не зависимо от их количества. UPD: можно добавить [^\d]{1} - но будет отлавливать первый символ за числом, и это ещё пол беды - его можно отбросить потом. Главная проблема заключается в том, что "ограничитель" нужно добавлять для двух вариантов (см. примеры), и тогда работать только двумя регулярками.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 11.09.2019 в 10:04. |
![]() |
![]() |
![]() |
#3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Сообщение полностью изменено.
В части регулярных выражений проблему кое-как решил. в четыре регулярки Но теперь я упёрся в проблему многобайтовости UTF-8, и сложностей работы со всем этим =) Теперь выяснилось, что в качестве разделителя чисел у меня есть строки с русскими Х. И функция str_replace здесь почему-то безсильна.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 11.09.2019 в 22:35. |
![]() |
![]() |
![]() |
#4 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Ага, я опять решил проблему сам ...
Что-бы не было проблем с кириллицей - нужно сначала выполнить все операции именно с кириллицей, а потом выполнять остальные операции. В моём случае, функция strtoupper убивала кириллицу, из-за чего функция str_replace не могла заменить нужные символы. Проблему регистра и кириллицы одновременно решаются функцией str_ireplace. Но если сильно надо - можно два раза вызвать функцию str_replace для замены кириллических символов верхнего и нижнего регистра.
Подпись ? Не, не слышал ...
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
![]()
А вот так вроде проще
Код:
И параметры для регекса gmu Количество пробелов между элементами можно любое.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. Последний раз редактировалось WorldMaster; 12.09.2019 в 08:23. |
![]() |
![]() |
![]() |
#6 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
![]()
Да, может и проще ...
Но здесь не учитываются варианты что нужный фрагмент может быть в конце строки. Добавим необязательный блок - получаем те самые 2 регулярки. Должно быть в итоге 0. Какая разница, буду ли я потом вызывать trim, или же сначала выполню отсев пробелов ?
Подпись ? Не, не слышал ...
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
![]() Цитата:
trim как правило удаляет вначале и в конце строки. Для данной реги не имеет значение когда вы будете удалять пробелы. К тмоу же тут учтено что вмесо пробела может присутствовать какой либо невидимый символ.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,480
|
![]() Код:
Последний раз редактировалось 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 |