我有一个字符串:
05-01-2015 12:27 - KH - (KH)Igangværende - Opringning - 13-11 00:00 FangedeRLIpå汉斯·莫米尔。 Ring igen kl。 15 19-11-2014 11:17 - KH - (KH)Igangværende - Opringning - 13-11 00:00Gikpåsvarerigen og lagt倾斜直到RLI在ringe倾斜。 12-11-2014 09:38 - KH - (KH) Igangværende - Opringning - 13-11 00:00 12-11-2014 09:32 - KH - (KH) Igangværende - Opringning - 15-10 00:00ForsøgtRLIigen og lagt beked om han vil ringe。 14-10-2014 13:14 - KH - (KH)Igangværende - Opringning - 15-10 00:00 14-10-2014 13:10 - KH - (KH)Igangværende - Opringning - 14-10 00:00 Lagt besked直到RLI在14-10-2014 13:06 - KH - (KH)Igangværende - Opringning - 14-10 00:00测试
我需要将这个字符串解析成碎片,以便每个部分都以日期开头。为此,我试图从正则表达式中受益:
match = re.search(r'\d{2}-\d{2}-\d{4}', text)
但是这段代码只能找到日期。我不能再往前走了。我需要有一些如:
first_piece:05-01-2015 12:27 - KH - (KH)Igangværende - Opringning - 13-11 00:00 FangedeRLIpåhansmobil。 Ring igen kl。 15
second_piece:19-11-2014 11:17 - KH - (KH)Igangværende - Opringning - 13-11 00:00Gikpåsvarerigen og lagt besked to RLI at ringe tilbage。
等等。
你能否告诉我一些关于实现这些子字符串的见解?
提前致谢。
答案 0 :(得分:5)
这有用吗?
re.split(r' (?=\d{2}-\d{2}-\d{4})', text)
答案 1 :(得分:2)
马库斯有正确的答案,但他们的答案中缺少一个有趣的小细节。
测试文件 multiple_dates.py
import re
test_string = u"05-01-2015 12:27 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Fangede RLI på hans mobil. Ring igen kl. 15 19-11-2014 11:17 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Gik på svarer igen og lagt besked til RLI at ringe tilbage. 12-11-2014 09:38 - KH - (KH) Igangværende - Opringning - 13-11 00:00 12-11-2014 09:32 - KH - (KH) Igangværende - Opringning - 15-10 00:00 Forsøgt RLI igen og lagt besked om han vil ringe. 14-10-2014 13:14 - KH - (KH) Igangværende - Opringning - 15-10 00:00 14-10-2014 13:10 - KH - (KH) Igangværende - Opringning - 14-10 00:00 Lagt besked til RLI at ringe 14-10-2014 13:06 - KH - (KH) Igangværende - Opringning - 14-10 00:00 test"
groups = re.split(r' (?=\d{2}-\d{2}-\d{4})', test_string)
for group in groups:
print(group)
如果我在python2.7中运行给定的例子,我得到
python multipe_dates.py
File "multipe_dates.py", line 3
SyntaxError: Non-ASCII character '\xc3' in file multipe_dates.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
如果我用python3运行它,它默认工作
python3 multipe_dates.py
05-01-2015 12:27 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Fangede RLI på hans mobil. Ring igen kl. 15
19-11-2014 11:17 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Gik på svarer igen og lagt besked til RLI at ringe tilbage.
12-11-2014 09:38 - KH - (KH) Igangværende - Opringning - 13-11 00:00
12-11-2014 09:32 - KH - (KH) Igangværende - Opringning - 15-10 00:00 Forsøgt RLI igen og lagt besked om han vil ringe.
14-10-2014 13:14 - KH - (KH) Igangværende - Opringning - 15-10 00:00
14-10-2014 13:10 - KH - (KH) Igangværende - Opringning - 14-10 00:00 Lagt besked til RLI at ringe
14-10-2014 13:06 - KH - (KH) Igangværende - Opringning - 14-10 00:00 test
如果你添加
# -*- coding: utf-8 -*-
到你的py文件的顶部它将在python2
中工作答案 2 :(得分:1)