如何从字符串python 3中提取日期?
如何在python 3中从字符串中提取日期 首先要查找具有日期的子字符串 如果找到,则拆分元素如何从字符串python 3中提取日期?,python,Python,如何在python 3中从字符串中提取日期 首先要查找具有日期的子字符串 如果找到,则拆分元素 import re test_list = [["4","list1",'FEE(DR09/01/2019', '1', '13.50'], ["9","list2",'FEE11/01/2019','45.00', '105.00', '0.00', '105.00'], ["7","list3",'2-BED ROOM (09/01/2019 -', '09/01/2019)', '1', '15
import re
test_list = [["4","list1",'FEE(DR09/01/2019', '1', '13.50'],
["9","list2",'FEE11/01/2019','45.00', '105.00', '0.00', '105.00'],
["7","list3",'2-BED ROOM (09/01/2019 -', '09/01/2019)', '1', '150.00']]
subs = r"\d{1,2}/\d{1,2}/\d{4}"
l=[]
for x in test_list:
for item in x:
if re.search(subs, item):
l.append(item)
print(l)
预期产出:
[["4","list1","FEE(DR","09/01/2019", '1', '13.50'],
["9","list2",'FEE','11/01/2019','45.00', '105.00', '0.00', '105.00'],
["7","list3",'2-BED ROOM ( ','09/01/2019',' -', '09/01/2019',')', '1',
'150.00']]
这只适用于您的具体情况
。。。
对于测试列表中的元素:
对于范围内的索引(len(元素[2]):
如果作战需求文件(要素[2][索引])>47且作战需求文件(要素[2][索引])<52:
插入(3,要素[2][索引:]
元素[2]=元素[2][:索引]
如果len(元素[3])>10:
要素。插入(4,要素[3][10:])
元素[3]=元素[2][:10]
打破
...
但是,如果您想要从字符串中获取日期的函数,只需在函数中放第二位,就可以使用python3在给定字符串中提取日期: 通过以下代码:
from pygrok import Grok
input_string = input()
date_pattern = '%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}'
grok = Grok(date_pattern)
a=grok.match(input_string)
for key in a.keys():
print((str(a[key])+'-'),end='')
输入:猴子2010-07-10爱香蕉
输出:2010-07-10使用
re.split
和捕获组:
import re
test_list = [["4","list1",'FEE(DR09/01/2019', '1', '13.50'],
["9","list2",'FEE11/01/2019','45.00', '105.00', '0.00', '105.00'],
["7","list3",'2-BED ROOM (09/01/2019 -', '09/01/2019)', '1', '150.00']]
subs = r"(\d{1,2}/\d{1,2}/\d{4})"
res = []
for l in test_list:
sub = []
for s in l:
sub.extend([i for i in re.split(subs, s) if i])
res.append(sub)
print(res)
输出:
[['4', 'list1', 'FEE(DR', '09/01/2019', '1', '13.50'],
['9', 'list2', 'FEE', '11/01/2019', '45.00', '105.00', '0.00', '105.00'],
['7', 'list3', '2-BED ROOM (', '09/01/2019', ' -', '09/01/2019', ')', '1', '150.00']]
到目前为止你尝试了什么?我更新了我的ocde请查看again@pyml为什么您期望的子列表中的最后一个日期带有括号?它们不应该是
'2-BED ROOM('、'09/01/2019'、'-'、'09/01/2019'
?对不起,我错了,我忘了分开,现在我编辑了我的输出,请再次查看