我有一些网络抓取的日期,但似乎国家也在日期字符串中。这是一个示例:
Nov. 4, 2015Bangladesh
April 8, 2015Saudi Arabia
Jan. 14, 2016Indonesia
June 26, 2015Tunisia
Jan. 11, 2016France
我知道正则表达式非常适合处理字符串,但我没有足够的经验知道如何开始。
如何在保持日期完好的情况下删除国家/地区?
答案 0 :(得分:3)
这个正则表达式将为您提供所有这些的日期字符串。这可能也可以通过向我们展示您抓取日期的代码来解决,但这不是这个问题的内容。
^.+?\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
答案 1 :(得分:1)
您可以尝试以下操作:
查看演示here:
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']