raf*_*afa 7 python regex scrapy python-2.7
在网页抓取过程中以及在删除所有html标签之后,我在unicode(☎)中获得了黑色电话字符\ u260e.但与此不同的是,我确实希望摆脱它.
我在Scrapy中使用以下正则表达式来消除html标记:
pattern = re.compile("<.*?>| |&",re.DOTALL|re.M)
Run Code Online (Sandbox Code Playgroud)
然后我试图匹配\ u260e,我想我被反斜杠瘟疫抓住了.我试过这种模式失败了:
pattern = re.compile("<.*?>| |&|\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>| |&|\\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>| |&|\\\\u260e",re.DOTALL|re.M)
Run Code Online (Sandbox Code Playgroud)
这些都不起作用,我仍然有作为输出的\ 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)
Run Code Online (Sandbox Code Playgroud)
输出:
u'bla ble blo'
Run Code Online (Sandbox Code Playgroud)
正如@Zack指出的那样,这是因为字符串现在是unicode,即字符串已经被转换,字符序列\u260e现在是 - 可能 - 两个字节用来写那个小黑手机☎(:
一旦要搜索的字符串和正则表达式都有黑色电话本身,而不是字符序列\u260e,它们都匹配.
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |