يبدو أنه خطأ محتمل في التعابير النمطية (regex)، والتي يصعب دائمًا فك تشابكها. @zogstrip ربما يمكنك إلقاء نظرة بما أنك عملت في هذا المجال مؤخرًا (على الرغم من أن هذا يبدو موجودًا منذ فترة).
إليك فهمي…
عندما نتحقق من الكلمات، هناك 3 مقاطع يجب أن تتطابق: البادئة، الكلمة، اللاحقة. لقد قمنا بتعيين البادئة واللاحقة لتكون أحرفًا غير أبجدية… يمكن أن تكون هذه علامات ترقيم أو مسافات أو أو أرقام. الأرقام هي ما يسبب عدم تطابق هنا. القصد هو أن نتمكن من التقاط الكلمات حتى لو كانت هناك علامات ترقيم أو ما شابه قبل/بعد الكلمة.
لذا، يرى التعبير النمطي 123Test، ويجد Test، وينظر قبلها ويجد 3 وهذا يتطابق كـ “غير حرفي”، ثم ينظر بعدها ويجد نهاية الكلمة. لذا فهو يتطابق مع 3Test.
أعتقد أننا بحاجة إلى التحقق من الأحرف غير الأبجدية و غير الرقمية في مقاطع البادئة/اللاحقة لتجنب ذلك؟ لست متأكدًا مما إذا كان هناك سبب لعدم تضمين الأرقام أو إذا كان مجرد سهو.