gpt4 book ai didi

python - 在 Python 中尝试匹配正则表达式时如何处理变音符号

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:33 24 4
gpt4 key购买 nike

尝试将正则表达式与 unicode html 转义符用于变音符号:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
htmlstring=u'''/">čćđš</a>.../">España</a>'''

print re.findall( r'/">(.*?)</a', htmlstring, re.U )

产生:

[u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']

请问有什么帮助吗?

最佳答案

这似乎是一个编码问题。您的代码正在正常工作。你期待一些不同的东西吗?以 u 为前缀的字符串是 unicode 文字。以 \u 开头的字符是后跟四个十六进制数字的 unicode 字符,而以 \x 开头的字符是后跟两个十六进制数字的 unicode 字符。如果您打印结果(而不是查看他们的 __repr__ 方法),您将看到您已经收到了您正在寻找的结果:

results = [u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']
for result in results:
print result

čćđš
España

在您的代码中(即在您的列表中),您会看到这些 un​​icode 文字的表示形式:

for result in results:
print result.__repr__()

u'\u010d\u0107\u0111\u0161' # what shows up in your list
u'Espa\xf1a'

顺便说一句,您似乎正在尝试使用正则表达式解析 html。你应该尝试BeautifulSoup或类似的东西代替。这将让你免去日后的大麻烦。

关于python - 在 Python 中尝试匹配正则表达式时如何处理变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com