التعامل مع الحركات في الأنماط التعريفية لبايثون؟

واحدة من المشكلات التي أواجهها أثناء التعامل مع الأنماط التعبيرية لبايثون (2.7 على الأقل) أنها تعتبر الحركات فاصلا للكلمة، ولذا فعند اختبار

re.findall(ur"\bأبو\b", u"أبوَاب")

فسيلتقط "أبو" في "أبوَاب".

يمكن التعلب على هذا العيب باستثناء الحركات:

re.findall(ur"\bأبو\b(?![ًٌٌٍَُِْ])", u"أبوَاب")

هل من وسيلة أخرى لتفادي العلة بطريقة أكفأ؟


التعليق السابق

يبدو لي أن مكتبة regex مفيدة هنا، أليس كذلك؟ من صفحتها:

The WORD flag changes the definition of a 'word boundary' to that of a default Unicode word boundary. This applies to \b and \B.