gpt4 book ai didi

python - 如何使用正则表达式从字符串中仅检索阿拉伯语文本?

转载 作者:太空狗 更新时间:2023-10-30 00:43:49 26 4
gpt4 key购买 nike

我有一个包含阿拉伯语和英语句子的字符串。我想要的是只提取阿拉伯语句子。

my_string="""
What is the reason
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
behind this?
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
"""

This Link表明阿拉伯字母的 Unicode 范围是 0600-06FF

所以,我想到的非常基本的尝试是:

import re
print re.findall(r'[\u0600-\u06FF]+',my_string)

但是,这失败了,因为它返回了以下列表。

['What', 'is', 'the', 'reason', 'behind', 'this?']

如您所见,这与我想要的完全相反。我在这里缺少什么?

注意

我知道我可以使用如下所示的反向匹配来匹配阿拉伯字母:

print re.findall(r'[^a-zA-Z\s0-9]+',my_string)

但是,我不想那样。

最佳答案

您可以使用 re.sub用空字符串替换 ascii 字符。

>>> my_string="""
... What is the reason
... ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
... behind this?
... ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
... """
>>> print(re.sub(r'[a-zA-Z?]', '', my_string).strip())
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ

ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ

您的正则表达式不起作用,因为您使用的是 Python 2 并且您的字符串是 str 您需要将 my_string 转换为 unicode 才能正常工作。然而,它在 Python3.x 上完美运行

>>> print "".join(re.findall(ur'[\u0600-\u06FF]', unicode(my_string, "utf-8"), re.UNICODE))
ذَلِكَالْكِتَابُلَارَيْبَفِيهِهُدًىلِلْمُتَّقِينَذَلِكَالْكِتَابُلَارَيْبَفِيهِهُدًىلِلْمُتَّقِينَ

关于python - 如何使用正则表达式从字符串中仅检索阿拉伯语文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36661837/

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