Python忽略了替换方法上的破折号

时间:2018-02-22 15:11:40

标签: python

我在python中有以下代码从字符串中删除一些破折号,所有其他替换参数效果都很好,但破折号。我尝试过使用替换方法和Regex,但没有一个能够工作。

#-*- coding: utf-8 -*-
from bs4  import BeautifulSoup as Soup
import urllib.request
import re

with urllib.request.urlopen("http://idg.receita.fazenda.gov.br/dados/resultados/comercio-exterior/importacoes-de-produtos-dos-capitulos-01-a-99-da-ncm") as url:
    s = url.read()
soup = Soup(s,  "html.parser")

tables = soup.findAll("table")
for table in tables:
     if table.findParent("table") is None:
         replaced = (table.find("th").find("span").text.replace("-",""))
         print(replaced)

1 个答案:

答案 0 :(得分:2)

Capítulo 22 – Bebidas, líquidos alcoólicos e vinagres这样的短语中的“短划线”不是简单的短划线 - 正式为"hyphen-minus" - 根本不是。这是与Unicode U + 2013 en dash

无关的字符

将其添加到删除连字符的行;你可以重写它以使用正则表达式,或者直接将其粘贴到最后:

replaced = (table.find("th").find("span").text.replace("-","").replace("\u2013",""))

之后,您的行显示为

Capítulo 22  Bebidas, líquidos alcoólicos e vinagres