найти фиксированный формат даты с помощью регулярных выражений Python3? - PullRequest
1 голос
/ 29 марта 2019

найти фиксированный формат даты с помощью регулярного выражения python3?

import re 
input_file= "xxx","06/05/2018","07/05/2018","09/05/20"

dob_list = []

def check_dob(input_string):
    return re.findall(r"[\d]{1,2}/[\d]{1,2}/[\d]{2}", input_string)


def read_file(input_text):
for x in input_text:
    var_dob = check_dob(x)
    if len(var_dob) > 0:
        dob_list.append(var_dob)
        print(var_dob)

 read_file(input_file)

Ожидаемый результат:

  09/05/20

Получен вывод:

  06/05/2018
  07/05/2018
  09/05/20

1 Ответ

1 голос
/ 29 марта 2019

Вы почти правы, вместо этого используйте

[\d]{1,2}\/[\d]{1,2}\/[\d]{2}\b

(добавьте \b в конце вашего регулярного выражения).

\b обозначает границу слова.Поместив его в конец, предотвратите сопоставление любого символа после него.

Вы также можете поместить его как в начало, так и в конец регулярного выражения.Например:

\b[\d]{1,2}/[\d]{1,2}/[\d]{2}\b

Это позволит убедиться, что строки не совпадают с посторонними символами спереди и сзади (например, "09/02/2018", "1109/02/20" и т. Д.)

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