繁体   English   中英

如何从类似的字符串中拼接出日期?

[英]How can I splice out the date from similar strings?

我从网络抓取中获得了一堆日期,但看来日期字符串中也包含一个国家。 这是一个示例:

Nov. 4, 2015Bangladesh 
April 8, 2015Saudi Arabia 
Jan. 14, 2016Indonesia 
June 26, 2015Tunisia 
Jan. 11, 2016France 

我知道regex非常适合使用字符串,但是我只是没有足够的经验来知道如何开始。

如何在保留日期不变的情况下删除国家/地区?

这个正则表达式将从所有这些日期字符串中获取日期字符串。 可能还可以通过向我们显示您的日期抓取代码来解决此问题,但这不是这个问题的实质。

^.+?\s\d+,\s\d+

例:

import re
dates = ["Nov. 4, 2015Bangladesh",
"April 8, 2015Saudi Arabia ",
"Jan. 14, 2016Indonesia ",
"June 26, 2015Tunisia ",
"Jan. 11, 2016France "]


for item in dates:
    print(re.match(r"^.+?\s\d+,\s\d+", item).group(0))

打印:

Nov. 4, 2015
April 8, 2015
Jan. 14, 2016
June 26, 2015
Jan. 11, 2016

说明

^    -assert position at start of string
.+?  -match any char except newline (as few as possible)
\s   -match a space character
\d+  -match any number of digits
,    -match literal comma
\s   -match a space character
\d+  -match any number of digits

您可以尝试以下操作:

^(.*\\d{4})

此处查看演示:

import re

dates = """Nov. 4, 2015Bangladesh 
April 8, 2015Saudi Arabia 
Jan. 14, 2016Indonesia 
June 26, 2015Tunisia 
Jan. 11, 2016France"""

print re.findall(r'^(.*\d{4})', dates, re.M)
# ['Nov. 4, 2015', 'April 8, 2015', 'Jan. 14, 2016', 'June 26, 2015', 'Jan. 11, 2016']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM