用正则表达式(python)删除unicode项目符号 - 没有找到子弹

时间:2016-05-30 14:38:22

标签: python regex unicode

我在论坛周围搜索了一下,试图用似乎适用的每个解决方案删除子弹。

“弗里蒙特·全职”

关于如何切割字符串以提取“弗里蒙特”的任何想法?

我目前有这个删除项目符号,但我收到以下两个错误:

string.replace('/\d\.\s+|[a-z]\)\s+|[A-Z]\.\s+|[IVX]+\.\s+/g', "")

这对改变字符串没有任何影响,这告诉我正则表达式查询无法识别微小的子弹

string.replace('/\d\.\s+|[a-z]\)\s+|•\s+|[A-Z]\.\s+|[IVX]+\.\s+/g', "")

这会出现以下错误:

UnicodeDecodeError:'ascii'编解码器无法解码位置20中的字节0xe2:序数不在范围内(128)

也试过这种方式

bullet = u"\u2022"
string =u"Fremont · Full Time"
string2 = string.replace(bullet, "A")
newStr = re.sub(regex, "", string)

没有效果

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这样做

import string
string_to_replace = "Fremont · Full Time"
regex = '\xc2\xb7'
string.replace(string_to_replace, regex, '')

我是如何发现的

>>> a = "Fremont · Full Time"
>>> a.split()
['Fremont', '\xc2\xb7', 'Full', 'Time']
>>> import string
>>> string.replace(a,'\xc2\xb7',"")
'Fremont  Full Time'

[编辑]
正如Joey正确指出的那样,这取决于系统的编码。 split函数应该有助于弄清楚子弹在系统中的编码方式以及您希望代码运行的系统。

答案 1 :(得分:0)

如果您想将该字符串拆分为"Fremont""Full Time",请使用:

>>> import re
>>> re.split(u"\s*·\s*", u"Fremont · Full Time")
[u'Fremont', u'Full Time']