我想提取一些包含非ASCII字符的文本。问题是程序将非ASCII视为分隔符! 我试过了:
regex_fmla = '(?:title=[\'"])([:/.A-z?<_&\s=>0-9;-]+)'
c1='<a href="/climate/cote-d-ivoire.html" title="Climate data: Côte d\'Ivoire">Côte d\'Ivoire</a>'
c2= '<a href="/climate/cameroon.html" title="Climate data: Cameroon">Cameroon</a>'
c_list =[c1, c2]
for c in c_list
print re.findall(regex_fmla , c)
结果是:
^{pr2}$请注意,第一个国家是不正确的,因为系列在ô中断,它应该是:
['Climate data: Côte d\'Ivoire']
我在StackOverflow中搜索,找到了一个建议使用该标志的答案re.UNICODE,但它返回相同的错误答案!在
我该怎么解决这个问题?在
我建议使用BeautifulSoup解析html:
有关更多链接(
^{pr2}$<a ...>
),请使用.findAll()
方法:如果您需要任何具有
title
属性的内容:我也建议使用BeautifulSoup,但似乎您想知道如何包含这些特殊字符,可以将正则表达式更改为:
然后:
^{pr2}$输出:
我建议用靓汤,但如果你愿意坚持:
我相信导致
re.UNICODE
不能工作的问题是显式地将表达式中的字母表定义为[A-z0-9]
。如果我们将其更改为[\w]
,则标志将正常工作相关问题 更多 >
编程相关推荐