在网页抓取过程中,在删除所有 html 标签后,我得到了 unicode 中的黑色电话字符 \u260e (☎)。但不同于这个回应 https://stackoverflow.com/questions/7266842/character-u260e我也想摆脱它。
我在Scrapy中使用以下正则表达式来消除html标签:
pattern = re.compile("<.*?>| |&",re.DOTALL|re.M)
然后我尝试匹配 \u260e,我想我被抓住了反斜杠瘟疫 http://docs.python.org/2/howto/regex.html#the-backslash-plague。我尝试了这种模式但没有成功:
pattern = re.compile("<.*?>| |&|\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>| |&|\\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>| |&|\\\\u260e",re.DOTALL|re.M)
这些都不起作用,我仍然有 \u260e 作为输出。
我怎样才能让这个消失?
使用 Python 2.7.3,以下内容对我来说效果很好:
import re
pattern = re.compile(u"<.*?>| |&|\u260e",re.DOTALL|re.M)
s = u"bla ble \u260e blo"
re.sub(pattern, "", s)
Output:
u'bla ble blo'
正如@Zack 所指出的,这是因为字符串现在是 unicode 格式,即字符串已经被转换,并且字符序列\u260e
现在可能是用于写入那个黑色小手机的两个字节☎(:
一旦要搜索的字符串和正则表达式都有黑色手机本身,而不是字符序列\u260e
,它们都匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)