gpt4 book ai didi

python - 用空格环绕表情符号

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

我用了this post制作一个可以在文本字符串中找到表情符号的正则表达式,并在两边简单地粘贴一些空格字符。我的正则表达式代码:

try:
# Wide UCS-4 build
oRes = re.compile(u'['
u'\U0001F300-\U0001F64F'
u'\U0001F680-\U0001F6FF'
u'\u2600-\u26FF\u2700-\u27BF]+',
re.UNICODE)
except re.error:
# Narrow UCS-2 build
oRes = re.compile(u'('
u'\ud83c[\udf00-\udfff]|'
u'\ud83d[\udc00-\ude4f\ude80-\udeff]|'
u'[\u2600-\u26FF\u2700-\u27BF])+',
re.UNICODE)

s2 = oRE.sub(r' \1 ', s1)

但是,在删除表情符号时,我遇到了一些非常奇怪的行为,如下例所示。任何意见,将不胜感激。我在 MacBook 上使用 Python。谢谢。

输入

هيلاري كلينتون "متنحة"وتشير إلى عملي٩ غ في ولاي٩ بانسيلفانيا العتيق٩ اقائٯٯ: "وات ..₩

输出

هيلاري كلينتون "متنحة"وتشير إلى عملي٩ غ في ولاي٩ بانسيلفانيا العتيق٩ اقائٯٯ: "وات ..₩

最佳答案

一旦我更正了正则表达式中圆括号的位置,以下内容对我有用。在 try block 中,如果要创建组 \1,则需要将整个内容括起来;在except block 中,圆括号中需要include+,否则\1组只会捕获多个相关字符中的第一个。

import re
with open('input.txt', 'rb') as f:
s1 = f.read().decode('utf-8').strip()

try:
# Wide UCS-4 build
oRes = re.compile(u'(['
u'\U0001F300-\U0001F64F'
u'\U0001F680-\U0001F6FF'
u'\u2600-\u26FF\u2700-\u27BF]+)',
re.UNICODE)
except re.error:
# Narrow UCS-2 build
oRes = re.compile(u'(('
u'\ud83c[\udf00-\udfff]|'
u'\ud83d[\udc00-\ude4f\ude80-\udeff]|'
u'[\u2600-\u26FF\u2700-\u27BF])+)',
re.UNICODE)

s2 = oRes.sub(r' \1 ', s1)

with open('output.txt', 'wb') as f:
f.write((s1+'\n').encode('utf-8'))
f.write((s2+'\n').encode('utf-8'))

至于字符的反转,那一定是输入/输出或复制/粘贴链中某个步骤的产物,没有正确处理阿拉伯语从右到左的性质。它不会发生在我身上。当我在 MacBook 上的 TextWrangler 中打开 output.txt 时,结果看起来不错。

关于python - 用空格环绕表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979861/

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