【发布时间】:2016-05-02 08:06:27
【问题描述】:
我正在使用 Python 2.7 解析多个 XML 文件,其中有一些字符串,例如:string ="[2,3,13,37–41,43,44,46]"。我将它们拆分以获得所有元素的列表,然后我必须检测带有“-”的元素,例如“37-41”,但事实证明这不是常规破折号,而是非 ASCII 字符:
elements = [u'2', u'3', u'13', u'37\u201341', u'43', u'44', u'46']
所以我需要类似的东西
for e in elements:
if "–" in e:
# do something about it
如果在此 if 表达式中使用该非 ASCII 字符,则会收到错误消息:"SyntaxError: Non-ASCII character '\xe2' in file..."。
我尝试用这个 re 方法替换 if 表达式:
re.search('\xe2', e)
但情况并非如此。所以我正在寻找一种方法,要么将该非 ASCII 字符转换为常规 ASCII“-”,要么直接在搜索表达式中使用 ASCII 数字。
【问题讨论】:
-
只包含非ascii破折号和数字的元素?
-
@EbraHim 是的。我想检测像 37-41 这样的元素,所以我可以将它们扩展为 37 38 39 40 41。我可以轻松完成第二部分,但我对非 ascii 字符有疑问。
-
Python 2 还是 Python 3?仅 ASCII 字符 (0-127),还是包含 ISO Latin 1 (0-255)?
-
我正在使用具有 128 个 ASCII 字符的 python 2.7。
标签: python string python-2.7 ascii