【发布时间】:2015-06-23 22:37:10
【问题描述】:
我有一个字符串:
05-01-2015 12:27 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Fangede RLI 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 在 ringe tilbage 延迟到 RLI。 2014 年 12 月 11 日 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 请求 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 测试
我将此字符串解析为多个片段,以便每个片段都以日期开头。为此,正如my other post about my task 中所解决的那样,我受益于正则表达式,例如:
match = re.search(r' (?=\d{2}-\d{2}-\d{4})', text)
当我将上面的字符串直接写入代码中的变量 text 时,没有问题。但是,如果我使用 xlrd 或其他从 excel 文件中的单元格获取此文本,我将无法正确获取值。我也尝试了对单元格值进行编码/解码。但我只在 match[0] 中获得整个文本。没有拆分 match1、match[2] 或其他。这是我尝试从 excel 文件中获取文本的方法:
# -*- coding: utf-8 -*-
import re
import xlrd
book = xlrd.open_workbook("liste1.xlsx")
# get the first worksheet
first_sheet = book.sheet_by_index(0)
# read a cell
cell = first_sheet.cell(1,5)
text=cell.value
match = re.split(r' (?=\d{2}-\d{2}-\d{4})', text)
print match[0]
你能帮我解决这个问题吗?
提前致谢。
【问题讨论】:
-
阅读documentation on
re.search- 它只找到第一个匹配项。您可能正在寻找类似re.findall的东西。 -
但它在 text="05-01-2015 12:27 - KH - (KH) Igangværende - Opringning - 13-11 00:00 Fangede RLI ....."时有效。
-
当从excel单元格中获取相同的文本时,它不会
-
它不是re.search,而是re.split
标签: python regex string parsing split