我有一个巨大的字符串,其中包含诸如“\u201d”以及“\advance\”之类的情绪
我只需要删除反斜线,这样:
- \u201d = \u201d
- \united\ = united
(因为它中断了将其上传到 BigQuery 数据库的过程)
我知道它应该是这样的:
string.replace('\','') But not sure how to keep \u201d emotions.
附加: Unicode 情感示例
- \ud83d\udc9e
- \u201c
- \u2744\ufe0f\u2744\ufe0f\u2744\ufe0f
最佳答案
您可以拆分所有“\”,然后使用正则表达式通过添加前导“\”来替换您的情绪
s = '\\advance\\\\united\\ud83d\\udc9e\\u201c\\u2744\\ufe0f\\u2744\\ufe0f\\u2744\\ufe0f'
import re
print(re.sub('(u[a-f0-9]{4})',lambda m: '\\'+m.group(0),''.join(s.split('\\'))))
由于您的情绪是“u”和 4 个十六进制数字,“u[a-f0-9]{4}”
将匹配它们,您只需添加前导反斜杠
首先,您使用 ''.join(s.split('\\'))
或 s.replace('\\')
然后我们将每个“情绪”与正则表达式 u[a-f0-9]{4}
匹配(即 u 后面有 4 个十六进制字母)
使用 regex sub,您可以用前导 \\
关于Python .replace() 函数,以某种方式删除反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490123/