Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сделать одно регулярное выражение из двух / 8 сообщений из 8, страница 1 из 1
01.10.2020, 20:12
    #40004681
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Использую System.RegularExpressions.TRegEx
Имеется такой текст:
Код: plaintext
1.
номером 79533041523 его
номером +79533041525 его
После замены через регулярки должно получится так:
Код: plaintext
1.
номером 9533041523 его
номером 9533041525 его
И вот никак не получается сделать одну компактную регулярку. Получается только через 2 почти идентичных.
(\W)\+[78](\d{10})(\W)
(\W)[78](\d{10})(\W)
...
Рейтинг: 0 / 0
01.10.2020, 20:15
    #40004682
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Страдалецъ
Использую System.RegularExpressions.TRegEx
Имеется такой текст:
Код: plaintext
1.
номером 79533041523 его
номером +79533041525 его
После замены через регулярки должно получится так:
Код: plaintext
1.
номером 9533041523 его
номером 9533041525 его
И вот никак не получается сделать одну компактную регулярку. Получается только через 2 почти идентичных.
(\W)\+[78](\d{10})(\W)
(\W)[78](\d{10})(\W)


ИЛИ не срабатывает ? (\W)\+[78](\d{10})(\W) | (\W)[78](\d{10})(\W)
...
Рейтинг: 0 / 0
01.10.2020, 20:25
    #40004684
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Ну так скажите, что + не обязательный
Код: pascal
1.
(\W)\+?[78](\d{10})(\W)
...
Рейтинг: 0 / 0
01.10.2020, 20:45
    #40004692
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Вот это я и искал, небольшая модификация:
(\W)\+?[+78](\d{10})(\W)
и стал искать в любом из вариантов. Спасибо.
...
Рейтинг: 0 / 0
01.10.2020, 21:05
    #40004696
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Страдалецъ,

Зачем ты разрешил двойной плюс?
...
Рейтинг: 0 / 0
01.10.2020, 21:26
    #40004698
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Там возможно написание номера вот так: +9533041523, поэтому приходится учитывать и такой вариант.
...
Рейтинг: 0 / 0
01.10.2020, 21:49
    #40004699
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Страдалецъ
Там возможно написание номера вот так: +9533041523, поэтому приходится учитывать и такой вариант.
...
Рейтинг: 0 / 0
01.10.2020, 22:14
    #40004703
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать одно регулярное выражение из двух
Страдалецъ
Там возможно написание номера вот так: +9533041523, поэтому приходится учитывать и такой вариант.

Код: php
1.
(\W)\+?[78]?(\d{10})(\W)


Или так, если девятки без плюсов не нужны:
Код: php
1.
(\W)(\+|\+?[78])(\d{10})(\W)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сделать одно регулярное выражение из двух / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]