Регулярные выражения

Antrax - Настройка сим групп

Как сделать регулярное выражение?

Сайт для проверки парса JAVA
https://www.freeformatter.com/java-regex-tester.html
Примеры из ANTRAX:

1. Разбор строки ответа проверки баланса при помощи регулярного выражения. В этом случае, нужно со строки получить выражение '2.00'

Полное сообщение:

Na Vashem schete 2.00 grn. Tarif 'Vodafone Light'. Nomer deystvitelen do 07.01.2019. Upravlyaite nomerom v My Vodafone App - www.vodafone.ua
Для того что бы сравнить определенное значение необходимо сначала захватить все сообщение и после при помощи регулярного выражения указать, что именно необходимо сравнить.

Для этого необходимо выбрать слово или словосочетание перед значением или после, так же можно указать оба, чтобы было более точное регулярное выражение, которое необходимо сравнить, перед ним указать ".*", учитывая "пробелы" перед значением что необходимо проверить, после необходимо указать числовое значение, для этого используем \d, для того что бы взять несколько чисел необходимо после указать \d+, если в значении есть "." или ",", то необходимо их экранировать при помощи символа "\", будет выглядеть так "\." или "\,", далее указываем значения которые идут после, это могут быть символы, которые можно взять при помощи ".*" или же числа, которые можно взять при помощи "\d+", но после символов "." или "," желательно указывать точное значение чисел, для этого можно использовать "\d" с дополнительными значениями "{}"- данная настройка отвечает за количество символов которые необходимо взять для регулярного выражение, соответственно для того что с числа 2.00 указать что после "." идет 2 числа необходимо в скобках "{}" указать 2, то есть \d{2}. Также если необходимо делать сравнение то значение которое необходимо сравнить нужно брать в скобки "()", данные регулярные выражения будут выглядеть так (\d+) и (\d{2}). Так же иногда бывает что в сообщении есть перенос строки который тоже необходимо указывать при помощи "(?s)". После регулярное выражение для сравнения 2.00 будет выглядеть согласно примеру ниже:

.*Na Vashem schete (\d+)\.(\d{2}) grn.*(?s).*
Рассмотрим данное регулярное выражение:

Значение ".*" - отвечает за выбор всех символов в данной строке

"Na Vashem schete " - словосочетание, которое находится перед значением 2.00, то есть мы сделали привязку к значению 2.00, указав слово перед ним
(\d+) - регулярное выражение для значения 2 с числа 2.00
\. - регулярное выражение для значения . с числа 2.00
(\d{2}) -регулярное выражение для значения 00 с числа 2.00
" grn" - словосочетание, которое находится после значением 2.00, то есть мы сделали привязку к значению 2.00, указав слово после его

.*(?s).* - регулярное выражение. которое отвечает за возможный перенос строки, необходим для того что если сообщение будет с переносом строки
Иногда сообщения бывают разные с переносом или без и для того что бы не создавать два регулярных выражения, указывается возможный перенос строки.

2. Разбор строки ответа проверки баланса при получении иврита.

Полное сообщение:

ستاسو فعلی حساب0.00 افغانی اوتر07/07/2018 اعتبارلری
Регулярное выражение:

.*(\d+)\.(\d{2})*(?s).*
3. Разбор строки для авто замены sms, если нужно заменить одно выражение. В этом примере нужно заменить 'код подтверждения:'

Для того что бы заменить текст в SMS необходимо, так же выделить все сообщение и после разбить его на части, те которые не нужно менять, их можно указать как ".*" и те которые необходимо заменить, для этого необходимо указать слово или словосочетание

Полное сообщение:

Введите ваш личный код подтверждения: 558877
Регулярное выражение:

(.*)(код подтверждения)(.*)
Где:

регулярное выражение (.*) отвечает за словосочетание "Введите ваш личный " - первая часть сообщения

(код подтверждения) - регулярное выражение, которое отвечает за точную фразу "код подтверждения"
(.*) - регулярное выражение, которое отвечает за словосочетание ": 558877"
То есть мы разделили текст сообщения на 3 части:

1 часть до слов "код подтверждения"

2 часть слова "код подтверждения"

3 часть после слов "код подтверждения"

Каждая часть выражение выступает как $"часть" - где "часть" это порядковый номер пары "()", то есть первая открытая "(" (скобка), будет как $1, следующая "(" (скобка) как $2

В поле Replace by нужно указать:

$1$3
Результат замены:

Введите ваш личный: 558877
4. Разбор строки для автозамены sms, если нужно заменить несколько выражаений. В этом случае нужно заменить G-, google, code.

Полное сообщение:

G-679425 is your google verification code
Регулярное выражение:

(G\-)(.*)(google)(.*)(code)
В поле Replace by нужно указать:

$2$4КoДe
Результат замены:

679425 is your verification КoДe
где,

.* -соответствует любому символу (кроме терминаторов строк);
(\d) - совпадение с цифрой (равной [0-9]);
(\d+) - совпадение с любым количеством цифр;
(\d{2}) - соответствует точно 2 раза;
\. - экранирование символа;
(?s) - перенос строки.


 


Loading...