用于从列表中过滤掉日期的正则表达式
regular expression to filter out dates from a list
我有一个如下所示的列表:
['','2022-03-31', 'euss', 'projects','2021-03-31']
我想编写一个正则表达式,以便从列表中删除所有其他项目,只保留具有日期格式的项目。例如,2022-03-31 和 2021-03-31。
我试过了,但当我打印我的列表时,它似乎没有什么不同:
my_list = [re.sub(r"(\d+)/(\d+)/(\d+)",r"--",i) for i in list(my_list) ]
您可以先检查是否有正则表达式匹配字符串:
result = []
rx = re.compile(r'(\d+)-(\d+)-(\d+)')
for i in my_list:
if rx.search(i): # Check if the regex matches the string
result.append(rx.sub(r"--", i)) # Add modified string to resulting list
参见Python demo。
输出:
['31-2022-03', '31-2021-03']
你可以这样写:
rx = re.compile(r'(\d+)-(\d+)-(\d+)')
my_list = [rx.sub(r"--", i) for i in my_list if rx.search(i)]
我有一个如下所示的列表:
['','2022-03-31', 'euss', 'projects','2021-03-31']
我想编写一个正则表达式,以便从列表中删除所有其他项目,只保留具有日期格式的项目。例如,2022-03-31 和 2021-03-31。
我试过了,但当我打印我的列表时,它似乎没有什么不同:
my_list = [re.sub(r"(\d+)/(\d+)/(\d+)",r"--",i) for i in list(my_list) ]
您可以先检查是否有正则表达式匹配字符串:
result = []
rx = re.compile(r'(\d+)-(\d+)-(\d+)')
for i in my_list:
if rx.search(i): # Check if the regex matches the string
result.append(rx.sub(r"--", i)) # Add modified string to resulting list
参见Python demo。 输出:
['31-2022-03', '31-2021-03']
你可以这样写:
rx = re.compile(r'(\d+)-(\d+)-(\d+)')
my_list = [rx.sub(r"--", i) for i in my_list if rx.search(i)]