Как я могу проверить ввод только число и пробел в регулярном выражении? - PullRequest
1 голос
/ 07 сентября 2010

У меня есть «222 22 222», «333 33 33 333», «1234/34» и «ab345 543», и я хочу проверить, являются ли эти входы числовыми и пробелами. В этом случае первый и второй входы должны возвращать значение True, используя метод Test of Regular Expression, или возвращать свое собственное значение, используя метод Exec. Третий и четвертый должны вернуть false. Как я мог сделать это в регулярном выражении? Пожалуйста помоги. Спасибо.

Ответы [ 3 ]

7 голосов
/ 07 сентября 2010

Вы можете проверить с помощью этого регулярного выражения:

/^[\d\s]+$/

Рубулярное


Если вы также хотите проверить, что есть хотя бы одна цифра встрока:

/^\s*\d[\d\s]*$/
1 голос
/ 07 сентября 2010

Вы можете использовать что-то вроде этого регулярного выражения: ^ (?: [0-9] | \ s) * $

Вот тестовый пример на python:

test=["222 22 222", "333 33 33 333", "1234/34","ab345 543"]
for i in test:
    m = re.match("^(?:[0-9]|\s)*$", i)
    if (m == None): print("False")
    else: print("True: %s" % m.group())

Результат:

True: 222 22 222
True: 333 33 33 333
False
False

Ура Андреа

0 голосов
/ 07 сентября 2010

Я думаю, это должно быть что-то вроде [\ d \ s {0,1}]

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