使用正则表达式删除特殊的Unicode字符?

2024-05-29 10:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Wikipedia的API来获取一个简单的JSON对象,其中包含wiki页面的第一段,稍后我希望使用文本到语音转换的方式将其读给用户。然而,有些文章有一个特殊的正确发音抄写。例如,当我跟踪Chihuahua的链接时,JSON中的文本如下:"The Chihuahua /t\u0283\u026a\u02c8w\u0251\u02d0w\u0251\u02d0/ (Spanish: chihuahue\u00f1o) is the smallest breed of dog"我的问题是,什么正则表达式可以删除发音部分(可能还会删除任何Unicode特殊字符:\u和4个字符)?在

尝试re.sub("\/.+\/", "", test)只会在另一个\后面添加一个\。在


Tags: 对象用户文本apijson链接方式wiki
1条回答
网友
1楼 · 发布于 2024-05-29 10:26:49

(假设您使用Python是因为使用了^{},而您只想删除/tʃɪˈwɑːwɑː/,因为您的示例regex。)

首先,对于正则表达式模式,您需要使用Python的原始字符串表示法,因为Python对其他东西使用反斜杠(source);在正则表达式的字符串文本前面加一个r),您的原始示例可能就足够了。在

总之,您的思路是正确的—Unicode在这里的示例中不需要任何特殊处理。你只需要删除两个斜杠之间的所有内容。我还将限制斜杠之间的匹配空白,这样就不会在文档中捕获相距很远的两个斜杠之间的所有内容。在python2.7.12repl中,我可以使用以下命令:

>>> re.sub(r'\/[^/\s]+\/\s*', '', "The Chihuahua /t\u0283\u026a\u02c8w\u0251\u02d0w\u0251\u02d0/ (Spanish: chihuahue\u00f1o) is the smallest breed of dog")
'The Chihuahua (Spanish: chihuahue\\u00f1o) is the smallest breed of dog'

正则表达式分解如下:

^{pr2}$

相关问题 更多 >

    热门问题