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



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

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'])

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

示例:

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

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

您需要为正则表达式使用r-string:

space_pattern = r'bو'

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

您可以使用以下带有单词边界的正则表达式。并使用1只保留文本的剩余部分。

r"bو(.*?)b"
import re
text = """هيه الهزه الحقيقيه وتخافون الهزه وماتخافون الهزه اعملها نظامكم الهمجي"""
ref = """هيه الهزه الحقيقيه تخافون الهزه ماتخافون الهزه اعملها نظامكم الهمجي"""
print(text)
print(ref)
new_text = re.sub(r"bو(.*?)b", r'1', text)
print(new_text == ref)
هيه الهزه الحقيقيه وتخافون الهزه وماتخافون الهزه اعملها نظامكم الهمجي
هيه الهزه الحقيقيه تخافون الهزه ماتخافون الهزه اعملها نظامكم الهمجي
True

最新更新