我有一根绳子:
05-01-2015 12:27 - KH - (KH) Igangv rende- Opringning - 13-11 00:00 Fangede p hans mobil。环igen kl.15 19-11-2014 11:17 - KH - (KH) Igangv rende- Opringning - 13-11 00:00 Gik p svarer igen og lagt涂涂了RLI。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 igen igen og ringe om han vil ringe。14-10-2014 13:10 -14- ( KH ) Igangv rende- Opringning - 15-10 00:00 14-10-2014 13:10- KH - ( KH ) Igangv rende- Opringning - 14-10 00:00在14-10-2014 13:06 KH- (KH) Igangv rende- Opringning 14-10 00:00测试
我需要将这个字符串解析为各个片段,以便每个片段都以日期开始。为此,我试图从regex中获益,比如:
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 Fangede p hans mobil。环igen kl.15 second_piece: 19-11-2014 11:17 - KH - (KH) Igangv rende- Opringning - 13-11 00:00 Gik p svarer igen og lagt在环形倾斜处涂布直到RLI。
诸若此类。
你能给我一些关于实现这些子字符串的见解吗?
提前谢谢。
发布于 2015-06-23 20:13:14
这行得通吗?
re.split(r' (?=\d{2}-\d{2}-\d{4})', text)发布于 2015-06-23 20:20:55
马库斯有正确的答案,但在他们的答案中漏掉了一个有趣的细节。
测试文件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中工作
发布于 2015-06-23 20:14:29
https://stackoverflow.com/questions/31012533
复制相似问题