RegEx соответствует двум вариантам, но не более того - PullRequest
0 голосов
/ 29 августа 2009

Мне нужно захватить либо

\d+\.\d+

или

\d+

но ничего больше.

Например, , "0.02", "1" и "0.50" должны совпадать положительно. Я заметил, что я не могу просто использовать что-то вроде

[\d+\.\d+|\d+]

Ответы [ 3 ]

4 голосов
/ 29 августа 2009
(\d+\.\d+|\d+)

должен сделать трюк.

1 голос
/ 29 августа 2009

Вы можете сделать либо:

(\d+|\d+\.\d+)

или

(\d+(\.\d+)?)

но это создает вторую группу захвата. Более сложная версия:

(\d+(?:\.\d+)?)

Это называется группа без захвата .

Кстати, Информация о регулярных выражениях - превосходный сайт для учебников и информации по регулярным выражениям.

0 голосов
/ 29 августа 2009

Или \d+(\.\d+)?, если вам легче читать :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...