如何使用正则表达式从数据框中的阿拉伯文本中删除某个字母?

How to remove a certain letter from an arabic text in a dataframe using regular expressions?

我在数据框中有阿拉伯语文本,我想从所有以此字母开头的单词中删除字母 و。我尝试这样做:

def clean(text_string):
    space_pattern = '\bو'
    
    parsed_text = re.sub(space_pattern, '', text_string)
    return parsed_text

然后:

df['tidy_tweet'] = np.vectorize(clean)(df['tidy_tweet'])

但是当我 运行 它时,什么都没有改变。就好像我什么都没做一样!

示例:

输入:هيه الهزه الحقيقيه وتخافون الهزه وماتخافون الهزه اعملها نظامكم الهمجي

期望的输出:هيه الهزه الحقيقيه تخافون الهزه ماتخافون الهزه اعملها نظامكم الهمجي

您可以使用以下带有单词边界的正则表达式。并使用 </code> 只保留文本的剩余部分。</p> <pre><code>r"\bو(.*?)\b"

import re

text = """هيه الهزه الحقيقيه وتخافون الهزه وماتخافون الهزه اعملها نظامكم الهمجي"""
ref = """هيه الهزه الحقيقيه تخافون الهزه ماتخافون الهزه اعملها نظامكم الهمجي"""
print(text)
print(ref)

new_text = re.sub(r"\bو(.*?)\b", r'', text)

print(new_text == ref)
هيه الهزه الحقيقيه وتخافون الهزه وماتخافون الهزه اعملها نظامكم الهمجي
هيه الهزه الحقيقيه تخافون الهزه ماتخافون الهزه اعملها نظامكم الهمجي
True

您需要为正则表达式使用 r 字符串:

space_pattern = r'\bو'

如果没有 r,\b 将被解释为 ASCII 退格字符,不会出现在您的文本中。