Python中如何使用正则表达式将含Unicode的字符串转换为拉丁字符
Python Unicode转义替换解决方案
你需要的功能可以通过正则匹配\uXXXX格式的转义符批量替换实现,也可以直接用Python内置编码能力快速处理。
方案1:正则实现(符合你要求的正则实现逻辑)
import re import html # raw_str替换为你实际的原始字符串 raw_str = '你的原始字符串内容' # 第一步先转换HTML实体(把"、<这类转义符还原为正常符号) decoded_html = html.unescape(raw_str) # 替换逻辑:匹配到\uXXXX后转成对应字符 def unicode_replace(match): hex_val = match.group(1) return chr(int(hex_val, 16)) # 执行替换 result = re.sub(r'\\u([0-9a-fA-F]{4})', unicode_replace, decoded_html) print(result)
方案2:内置编码快速实现(无需手写正则,效果一致)
如果不需要强制用正则,直接用Python内置的unicode_escape解码即可,代码更简洁:
import html raw_str = '你的原始字符串内容' decoded_html = html.unescape(raw_str) result = decoded_html.encode('utf-8').decode('unicode_escape') print(result)
两种方案都可以将你示例中的CA\u00d1UELAS转换为CAÑUELAS,Almac\u00e9n转换为Almacén,完全匹配需求。
内容的提问来源于stack exchange,提问作者santys
相关产品推荐
相关产品推荐

