如何在正则表达式中检测阿拉伯语单词的单词边界 - Python

How to detect word boundary in regex for Arabic words - Python

我正在尝试删除任何可能包含非阿拉伯字符的词。因此,应该删除 ذهbword 这样的词。

我已经使用以下正则表达式成功删除了非阿拉伯字符:

re.sub(r'([^،-٩]+)',' ', 'ذهb')

但是我怎样才能删除整个单词呢?在正则表达式前面加上 \b 似乎不起作用。

您可能想试试 ascii_letters。这应该有效。

import string

text = "".join([char for char in text if char not in string.ascii_letters]).strip()
return text

你可以使用

re.sub(r'\s*\b[\u0621-\u064A]*[^\W\d_\u0621-\u064A][^\W\d_]*\b', '', text)

\s*\b[\u0621-\u064A]*[^\W\d_\u0621-\u064A][^\W\d_]*\b 匹配

  • \s* - 零个或多个空格
  • \b - 单词边界
  • [\u0621-\u064A]* - 零个或多个阿拉伯字母
  • [^\W\d_\u0621-\u064A] - 除了阿拉伯字母之外的任何 Unicode 字母
  • [^\W\d_]* - 任意零个或多个 Unicode 字母
  • \b - 单词边界