Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярное выражение / 14 сообщений из 14, страница 1 из 1
06.04.2016, 11:55
    #39209099
murtukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Здравствуйте!

Подскажите пожалуйста регулярное выражение, которое бы удовлетворяло следующему условию:
строка должна содержать ЛИБО только числа, ЛИБО только одно слово ' new '

Всем спасибо.
...
Рейтинг: 0 / 0
06.04.2016, 13:33
    #39209225
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
murtukov,

Код: plaintext
1.
^(\d+)|(new)$
...
Рейтинг: 0 / 0
06.04.2016, 16:00
    #39209435
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
MasterZivmurtukov,

Код: plaintext
1.
^(\d+)|(new)$

Это не совсем то.
Данное выражение значит: либо число в начале строки, либо new в конце строки.

Правильное такое:
^(\d+|new)$
...
Рейтинг: 0 / 0
07.04.2016, 01:39
    #39209726
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Anatoly Moskovsky,
это одно и то же
...
Рейтинг: 0 / 0
07.04.2016, 01:49
    #39209727
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
...
Рейтинг: 0 / 0
07.04.2016, 02:41
    #39209732
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
MasterZivэто одно и то же
А если нет ? ))
...
Рейтинг: 0 / 0
07.04.2016, 09:52
    #39209834
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
miksoft ^(\d+)|(new)$

^(\d+|new)$
и это тоже самое
уберите ^$

авторА если нет ? ))
да
...
Рейтинг: 0 / 0
07.04.2016, 11:08
    #39209919
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Anatoly MoskovskyMasterZivmurtukov,

Код: plaintext
1.
^(\d+)|(new)$

Это не совсем то.
Данное выражение значит: либо число в начале строки, либо new в конце строки.

Правильное такое:
^(\d+|new)$

намекаешь, что скобки нужно поставить вокруг групп с альтернативой?
ни разу не ставил, всегда работало.

ну это может быть, надо проверить приоритеты операций в рег выражениях.
...
Рейтинг: 0 / 0
07.04.2016, 11:57
    #39209999
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
MasterZivmurtukov,

Код: plaintext
1.
^(\d+)|(new)$



да, неправильно я написал,
нужно


Код: plaintext
1.
^(\d+|new)$
...
Рейтинг: 0 / 0
07.04.2016, 20:26
    #39210560
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Да, по нашему спору -- дело тонкое, вполне может быть, что приоритеты операций в регвыражения даже разные в разных библиотеках (реализациях)

Вот проверка в GNU regexxer. (это PCRE 5.0)
...
Рейтинг: 0 / 0
07.04.2016, 20:28
    #39210562
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Мораль: вокруг ИЛИ в регвыражениях надо всегда ставить скобки.
...
Рейтинг: 0 / 0
07.04.2016, 20:33
    #39210567
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
Это CLIon, регвыражения из Java SE.
...
Рейтинг: 0 / 0
07.04.2016, 20:34
    #39210568
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
(2)

Поведение одинаковое.
...
Рейтинг: 0 / 0
07.04.2016, 22:01
    #39210597
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярное выражение
MasterZivвполне может быть, что приоритеты операций в регвыражения даже разные в разных библиотеках (реализациях)
Жалко что нет подтверждения этой гипотезе ))

MasterZivМораль: вокруг ИЛИ в регвыражениях надо всегда ставить скобки.
Зависит от задачи.
Например обрезать пробелы по обоим краям строки:
Код: sql
1.
s/^\s+|\s+$//g


Тут надо именно без скобок ))
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярное выражение / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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