re.split 不能正常处理来自 excel 单元格的字符串
re.split doesnt work properly with a string coming from excel cell
我有一个字符串:
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
我将这个字符串解析成多个部分,以便每个部分都以日期开头。为此,正如 中所解决的那样,我受益于正则表达式,例如:
match = re.search(r' (?=\d{2}-\d{2}-\d{4})', text)
当我在代码中直接将上面的字符串写入变量text时,没有问题。但是,如果我使用 xlrd 或其他文件从 excel 文件中的单元格中获取此文本,我将无法正确获取值。我也尝试了 encode/decode 的单元格值。但我只在 match[0] 中得到整个文本。没有拆分匹配、匹配[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]
你能帮我解决这个问题吗?
提前致谢。
你试过repr(text)
吗?
我通过添加一行从单元格中删除非打印字符解决了这个问题,如本 post Unwanted Character in Excel cell 中所述:
# -*- 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= re.sub(r"[\r\n\t\x07\x0b]", "", cell.value)
match = re.split(r' (?=\d{2}-\d{2}-\d{4})', text)
print match[0]
print match[1]
print match[2]
我有一个字符串:
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
我将这个字符串解析成多个部分,以便每个部分都以日期开头。为此,正如
match = re.search(r' (?=\d{2}-\d{2}-\d{4})', text)
当我在代码中直接将上面的字符串写入变量text时,没有问题。但是,如果我使用 xlrd 或其他文件从 excel 文件中的单元格中获取此文本,我将无法正确获取值。我也尝试了 encode/decode 的单元格值。但我只在 match[0] 中得到整个文本。没有拆分匹配
# -*- 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]
你能帮我解决这个问题吗?
提前致谢。
你试过repr(text)
吗?
我通过添加一行从单元格中删除非打印字符解决了这个问题,如本 post Unwanted Character in Excel cell 中所述:
# -*- 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= re.sub(r"[\r\n\t\x07\x0b]", "", cell.value)
match = re.split(r' (?=\d{2}-\d{2}-\d{4})', text)
print match[0]
print match[1]
print match[2]