هل "\ d" في التعبير العادي تعني رقمًا؟

سئل على ٢٥ يونيو ٢٠١١  ·  تمت مشاهدة 316.2k مرة  ·  مصدر

Tim picture
في ٢٥ يونيو ٢٠١١

لقد وجدت أنه في 123 ، \d يتطابق مع 1 و 3 لكن ليس 2 . كنت أتساءل ما إذا كان \d يطابق رقمًا يلبي نوع المتطلبات؟ أنا أتحدث عن regex بأسلوب Python.

يستخدم المكون الإضافي للتعبير العادي في Gedit تعبيرًا عاديًا لنمط Python. لقد أنشأت ملفًا نصيًا مع كون محتواه

123

فقط 1 و 3 يطابق التعبير العادي \d ؛ 2 ليس كذلك.

بشكل عام بالنسبة لتسلسل من الأرقام الرقمية دون وجود أحرف أخرى بينهما ، فإن أرقام الترتيب الفردي فقط هي مطابقة ، وأرقام الترتيب الزوجية ليست كذلك. على سبيل المثال في 12345 ، المطابقات هي 1 و 3 و 5 .

الإجابات

Kirill Polishchuk picture
في ٢٥ يونيو ٢٠١١
477

لا يساوي [0-9] دائمًا \d . في python3 ، يتطابق [0-9] مع الأحرف 0123456789 ، بينما \d يتطابق مع [0-9] والأحرف الرقمية الأخرى ، على سبيل المثال الأرقام العربية الشرقية ٠١٢٣٤٥٦٧٨٩ .

Will picture
في ٢٥ يونيو ٢٠١١
13

يتطابق \d مع أي رقم مفرد في معظم أنماط قواعد اللغة العادية ، بما في ذلك python. مرجع Regex

Amber picture
في ٢٥ يونيو ٢٠١١
8

في التعبير العادي بنمط Python ، يتطابق \d مع أي رقم فردي. إذا كنت ترى شيئًا لا يبدو أنه يفعل ذلك ، فيرجى تقديم التعبير العادي الكامل الذي تستخدمه ، بدلاً من مجرد وصف هذا الرمز بعينه.

>>> import re
>>> re.match(r'\d', '3')
<_sre.SRE_Match object at 0x02155B80>
>>> re.match(r'\d', '2')
<_sre.SRE_Match object at 0x02155BB8>
>>> re.match(r'\d', '1')
<_sre.SRE_Match object at 0x02155B80>
srajan picture
في ١٦ يونيو ٢٠١٤
7

\\d{3} يطابق أي تسلسل مكون من ثلاثة أرقام في Java.

Doghouse87 picture
في ١ فبراير ٢٠١٥
5

هذا مجرد تخمين ، لكنني أعتقد أن محررك يطابق فعليًا كل رقم فردي - 1 2 3 - ولكن يتم تمييز المطابقات الفردية فقط ، لتمييزه عن الحالة عندما سلسلة 123 مطابقة.

تُبرز معظم وحدات تحكم regex المطابقات المتجاورة بألوان مختلفة ، ولكن نظرًا لإعدادات المكون الإضافي أو قيود المحطة أو لسبب آخر ، قد يتم تمييز كل مجموعة أخرى فقط في حالتك.

juFo picture
في ٥ مارس ٢٠٢٠
0

معلومات بخصوص .NET / C #:

رقم عشري: \ d \ d يطابق أي رقم عشري. يكافئ \ p {Nd} نمط التعبير العادي ، والذي يتضمن الأرقام العشرية القياسية 0-9 بالإضافة إلى الأرقام العشرية لعدد من مجموعات الأحرف الأخرى.

إذا تم تحديد سلوك متوافق مع ECMAScript ، فإن \ d يعادل [0-9]. للحصول على معلومات حول تعبيرات ECMAScript العادية ، راجع قسم "سلوك مطابقة ECMAScript" في خيارات التعبير العادي.

المعلومات: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-uate-expressions#decimal-digit-character-d