Страница 1 из 1

Помощь в составлении регулярного выражения

Добавлено: 21.07.2020 14:00
Павел Поляков
Добрый день, коллеги!

Подскажите, к кому можно обратиться за помощью в составлении регулярного выражения?
Нужно из темы письма брать номер заказа, шаблон примерно такой:

"слово слово слово слово 000-000000000-000"

То есть в начале идет произвольное кол-во слов без цифр на разных языках, дальше идут цифры, разделенные тире "-" ( 0 = цифра).
Можно не привязываться к шаблону самого номера заказа, а руководствоваться правилом: номером заказа считать то, что стоит после первого вхождения цифры, включая эту цифру.
Простите что неловко объясняю, терминологией владею плохо.

Нужно получать этот самый номер заказа и дальше с ним работать...

Re: Помощь в составлении регулярного выражения

Добавлено: 21.07.2020 17:51
Илья Федоров
Я правильно вас понял что вы не знаете структуру числового кода и он каждый раз разный, или все таки структура неизменна как на примере
Три числа тире 9 чисел - тире 3 числа?

Если структура постоянная то возможно будет не сложно.
Вот такие варианты могут сработать
\d{3}[-]\d{9}[-]\d{3}
или
\d{3}-\d{9}-\d{3}

Если количество символом между тире разное то попробовать вот такое более простое выражение


Попробуйте использовать сервис https://regex101.com/
или
http://regexpres.narod.ru/calculator.html

Re: Помощь в составлении регулярного выражения

Добавлено: 21.07.2020 18:56
Игорь Архипов
в скобки не забудьте обернуть выражение чтобы была capture группа

https://regex101.com/r/XEuygl/1/ - вот песочница

синтаксис если что - под java

Re: Помощь в составлении регулярного выражения

Добавлено: 22.07.2020 12:00
Павел Поляков
спасибо большое!

А можно сделать такое выражение, которое будет работать по принципу:
номером заказа считать первую встреченную цифру в теме письме и все последующие символы?

Например

"Номер заказа 345-4353-adfsa-344" = "345-4353-adfsa-344"
"Order ID number 3-4254235asdfa" = "34254235asdfa"
"43534-dfds-345" = "43534-dfds-345"

У вас там стоит "попробовать вот такое более простое выражение", а дальше ничего,может, забыли вписать?:-)

Заранее спасибо за ответ!
Федоров Илья писал(а):
21.07.2020 17:51
Я правильно вас понял что вы не знаете структуру числового кода и он каждый раз разный, или все таки структура неизменна как на примере
Три числа тире 9 чисел - тире 3 числа?

Если структура постоянная то возможно будет не сложно.
Вот такие варианты могут сработать
\d{3}[-]\d{9}[-]\d{3}
или
\d{3}-\d{9}-\d{3}

Если количество символом между тире разное то попробовать вот такое более простое выражение


Попробуйте использовать сервис https://regex101.com/
или
http://regexpres.narod.ru/calculator.html

Re: Помощь в составлении регулярного выражения

Добавлено: 22.07.2020 12:32
Илья Федоров
Более простое не помню уже что там было. Забудем.
Используйте сервисы по ссылкам экспериментируйте и все получится.