Не уверен в значении регулярного выражения - PullRequest
0 голосов
/ 21 апреля 2019

Я создал программу, которая проверяет ввод пользователя.Одна из проверок относится к символам, где единственным допустимым символом является десятичное место, если за ним следует хотя бы одно число.Я использовал регулярные выражения для этого, и, насколько я проверял, они работают правильно.Сначала он проверяет наличие каких-либо символов на входе, а затем проверяет, является ли формат любым числом цифр, включая ни одного, после которого следует десятичный знак, за которым следует хотя бы одна цифра.Тем не менее, я написал код ниже несколько месяцев назад, и теперь, когда я пытаюсь написать о программе, я изо всех сил пытаюсь найти точное объяснение регулярных выражений, и именно здесь мне нужна помощь.

regex1 = re.compile(r'(?![a-zA-Z0-9])[!-~]')
regex2 = re.compile(r'^\d*\.\d+?$')

if regex1.search(value):
   if regex2.search(value) == None:
      <value does not pass>

1 Ответ

0 голосов
/ 21 апреля 2019

Отказ от ответственности: я все еще изучаю регулярные выражения, так что простите меня, я объясню, насколько мое небольшое понимание

сначала вы найдете все, что вам нужно в этом Python Re , а для практики вы должны попробовать , как

вот краткое объяснение некоторых шаблонов

regex1 = re.compile (r '(?! [A-zA-Z0-9]) [! - ~]') regex2 = re.compile (r '^ \ d *. \ d +? $')

(?! ...) Соответствует, если ... не соответствует следующему. Это негативное предположение. Например, Исаак (?! Азимов) будет соответствовать «Исааку», только если за ним не следует «Азимов».

[!-~] соответствует одному символу, то есть любому из!, -, ~

'^\d*\.\d+?$' имеет несколько символов: ^ = поиск в начале текста, \d = цифра 0-9, *,+ = множители, ? = поиск без жадности, \. = простая точка

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