我在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)
答案 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