جدول ملخص صيغة التعبير العادي

التعبيرات العادية، المعروفة أيضا بالتعبيرات القابلة للتفسير، هي نمط نصي، يستخدم عادة للبحث والاستبدال والتحكم في النصوص. تشمل أساسا الأحرف من a إلى z وبعض الأحرف الخاصة. نطاق تطبيق التعبيرات العادية واسع جدا، حيث بدأت شهرتها في Unix، ثم تم استخدامها على نطاق واسع في Scala و PHP و C# و Java و C++ و Objective-c و Perl و Swift و VBScript و Javascript و Ruby و Python وغيرها. دراسات التعبيرات العادية فعلًا تعلم نوعًا من التفكير المنطقي المرن، حيث يمكن التحكم في السلسلة من خلال طرق سريعة وبسيطة.
رمز التعبير العادي الوصف
\ يعلم الحرف التالي ليكون حرفًا خاصًا أو حرفًا اصوليًا، أو مرجعًا خلفيًا، أو رمزًا خاصًا بأسلوب ثماني. على سبيل المثال، "“n" تطابق الحرف "n". "\n" تطابق حرف العودة إلى السطر.
^ تطابق بداية سلسلة الإدخال. إذا تم تعيين خاصية Multiline لكائن RegExp، ستتطابق ^ أيضًا مع موقع بعد "“\n" أو "\r".
$ تطابق نهاية سلسلة الإدخال. إذا تم تعيين خاصية Multiline لكائن RegExp، ستتطابق أيضًا مع موقع قبل "“\n" أو "\r".
* تطابق التعبير الفرعي السابق صفر أو أكثر من المرات. على سبيل المثال، zo* يمكن أن تطابق "“z" و "zoo". * يعادل {0,}.
+ تطابق التعبير الفرعي السابق مرة واحدة أو أكثر. على سبيل المثال، "“zo+" يمكن أن تطابق "zo" و "zoo"، ولكن لا يمكن أن تطابق "z". + يعادل {1,}.
? تطابق التعبير الفرعي السابق صفر أو مرة واحدة. على سبيل المثال، "“do(es)?" يمكن أن تطابق "does" أو "does" في "do". ? يعادل {0,1}.
{n} n هو عدد صحيح غير سالب. تطابق عددًا معلومًا من n مرات. على سبيل المثال، "“o{2}" لا يمكن أن تطابق "Bob" يتضمن "o"، لكن يمكن أن تطابق "food" يتضمن حرفين o.
{n,} n هو عدد صحيح غير سالب. تطابق على الأقل n مرات. على سبيل المثال، "“o{2,}" لا يمكن أن تطابق "Bob" يتضمن "o"، لكن يمكن أن تطابق جميع الـo في "foooood". "o{1,}" يعادل "o+". "o{0,}" يعادل "o*".
{n,m} m و n كلاهما أعداد صحيحة غير سالبة حيث n <= m. تطابق على الأقل n مرات وبحد أقصى m مرات. على سبيل المثال، "“o{1,3}" ستطابق الثلاثة o الأولى في "fooooood". "o{0,1}" يعادل "o?". يجب ملاحظة أنه لا يمكن أن يكون هناك مساحة بين الفاصلة والعددين.
? عندما يلي هذا الحرف أي مقيد آخر (*، +، ؟، {n}، {n,}، {n,m})، يكون مطابقة نمط غير جشعة. النمط غير الجشع يتطابق بأقل ما يمكن مع السلسلة التي تم البحث عنها، بينما النمط الجشع الافتراضي يتطابق بأكبر قدر ممكن مع السلسلة المبحوث عنها. على سبيل المثال، بالنسبة للسلسلة "“oooo"، "o+?" ستطابق "o" واحدة، بينما "o+" ستطابق جميع الـ"o".
. تطابق أي حرف واحد باستثناء "“\n". لتطابق أي حرف بما في ذلك "\n"، استخدم نمط مثل "(.|\n)".
(pattern) تطابق النمط واسترجاع هذه المطابقة. يمكن الحصول على المطابقات باستخدام مجموعة Matches الناتجة، في VBScript باستخدام مجموعة SubMatches، وفي JScript باستخدام خصائص $0…$9. لتطابق حرف القوس، استخدم "“\(" أو "\)".
(?:pattern) تطابق النمط ولكن لا تسترجع النتائج المطابقة، أي أن هذا نمط ليس للاسترجاع، ولا يتم تخزينه للاستخدام لاحقًا. هذا مفيد عند استخدام حرف "أو" "“(|)" لتركيب أجزاء مختلفة من نمط. على سبيل المثال "industr(?:y|ies)" هي تعبير أكثر اختصارًا من "industry|industries".
(?=pattern) تحقق إيجابي للأمام، يبحث عن سلسلة تتطابق مع النمط في بداية أي سلسلة تطابق. هذا نمط غير استرجاعي، مما يعني أن المطابقة لا تحتاج إلى الاسترجاع للاستخدام لاحقًا. على سبيل المثال، "“Windows(?=95|98|NT|2000)" يمكن أن تطابق "Windows" في "Windows2000"، لكنها لا يمكن أن تطابق "Windows" في "Windows3.1". لا تستهلك المطابقة الأحرف، مما يعني أن البحث عن المطابقة التالية يبدأ على الفور بعد آخر مطابقة، وليس بعد الأحرف التي تحتوي على المراجعة.
(?!pattern) تحقق سلبي للأمام، يبحث عن سلسلة لا تتطابق مع النمط في بداية أي سلسلة. هذا نمط غير استرجاعي، مما يعني أن المطابقة لا تحتاج إلى الاسترجاع للاستخدام لاحقًا. على سبيل المثال، "“Windows(?!95|98|NT|2000)" يمكن أن تطابق "Windows" في "Windows3.1"، لكنها لا تستطيع أن تطابق "Windows" في "Windows2000". لا تستهلك المطابقة الأحرف، مما يعني أن البحث عن المطابقة التالية يبدأ على الفور بعد آخر مطابقة.
(?<=pattern) تحقق إيجابي سلبي، مشابه للتحقق الإيجابي، لكنه في الاتجاه العكسي. على سبيل المثال، "“(?<=95|98|NT|2000)Windows" يمكن أن تطابق "2000Windows" في "Windows"، لكنها لا تطابق "3.1Windows" في "Windows".
(?<!pattern) تحقق سلبي، مشابه للتحقق السلبي، لكنه في الاتجاه العكسي. على سبيل المثال، "“(?<!95|98|NT|2000)Windows" يمكن أن تطابق "3.1Windows" في "Windows"، لكنها لا تطابق "2000Windows" في "Windows".
x|y تطابق x أو y. على سبيل المثال، "“z|food" يمكن أن تطابق "z" أو "food". "(z|f)ood" تطابق "zood" أو "food".
[xyz] مجموعة الأحرف. تطابق أي حرف متضمن. على سبيل المثال، "“[abc]" يمكن أن تطابق "a" في "plain".
[^xyz] مجموعة أحرف سلبية. تطابق أي حرف غير متضمن. على سبيل المثال، "“[^abc]" يمكن أن تطابق "p" في "plain".
[a-z] نطاق الأحرف. تطابق أي حرف ضمن النطاق المحدد. على سبيل المثال، "“[a-z]" يمكن أن تطابق أي حرف صغير بين "a" و "z".
[^a-z] نطاق أحرف سلبية. تطابق أي حرف غير ضمن النطاق المحدد. على سبيل المثال، "“[^a-z]" يمكن أن تطابق أي حرف غير بين "a" و "z".
\b تطابق حدود الكلمة، وهي الموقع بين الكلمة والمسافة. على سبيل المثال، "“er\b" يمكن أن تطابق "er" في "never"، ولكن لا يمكن أن تطابق "er" في "verb".
\B تطابق غير حدود الكلمة. "“er\B" يمكن أن تطابق "er" في "verb"، لكنها لا يمكن أن تطابق "er" في "never".
\cx تطابق حرف التحكم المحدد بـ x. على سبيل المثال، \cM تطابق Control-M أو حرف العودة. يجب أن تكون قيمة x من A إلى Z أو a إلى z. خلاف ذلك، يُعتبر c حرف أصل.
\d تطابق حرف رقم. يعادل [0-9].
\D تطابق حرف غير رقم. يعادل [^0-9].
\f تطابق حرف الانتقال للصفحة. يعادل \x0c و \cL.
\n تطابق حرف العودة إلى السطر. يعادل \x0a و \cJ.
\r تطابق حرف العودة. يعادل \x0d و \cM.
\s تطابق أي حرف فراغ، بما في ذلك الفراغات، علامات التبويب، أحرف الانتقال للصفحة، وما إلى ذلك. يعادل [ \f\n\r\t\v].
\S تطابق أي حرف غير فراغ. يعادل [^ \f\n\r\t\v].
\t تطابق حرف التبويب. يعادل \x09 و \cI.
\v تطابق حرف التبويب العمودي. يعادل \x0b و \cK.
\w تطابق أي حرف كلمة بما في ذلك الشرطة السفلية. يعادل "“[A-Za-z0-9_]".
\W تطابق أي حرف غير كلمة. يعادل "“[^A-Za-z0-9_]".
\xn تطابق n، حيث n هو قيمة هروب سداسية عشرية. يجب أن تكون قيمة الهروب السداسية عشرية مؤلفة من رقمين مؤكدين. على سبيل المثال، "“\x41" تطابق "A". "\x041" يعادل "\x04&1". يمكن استخدام الرموز ASCII في التعبيرات العادية.
\num تطابق num، حيث num هو عدد صحيح موجب. من أجل الإشارة إلى المطابقات المسترجعة. على سبيل المثال، "“(.)\1" تطابق حرفين متتابعين متطابقين.
\n يحدد قيمة هروب ثماني أو مرجع خلفي. إذا كان \n لديه على الأقل n من التعبيرات الفرعية المسترجعة، فإن n يكون مرجع خلفي. خلاف ذلك، إذا كان n هو رقم ثماني (0-7)، فإن n يكون قيمة هروب ثماني.
\nm يشير إلى قيمة هروب ثماني أو مرجع خلفي. إذا كان \nm لديه على الأقل nm من التعبيرات الفرعية المسترجعة، فإن nm هو مرجع خلفي. إذا كان \n لديه على الأقل n من التعبيرات المسترجعة، فإن n هو مرجع خلفي يتبعه حرف نصي m. إذا لم تستوف هذه الشروط، وإذا كانت كل من n و m هي أرقام ثمانية (0-7)، فإن \nm ستتطابق مع القيمة الهاربة الثمانية nm.
\nml إذا كان n هو رقم ثماني (0-3)، و m و l كلاهما أرقام ثمانية (0-7)، فإن تطابق القيمة الهاربة الثمانية nml.
\un تطابق n، حيث n هو حرف Unicode مُمثل بأربعة أرقام سداسية عشرية. على سبيل المثال، \u00A9 تطابق رمز حقوق الطبع والنشر (©).
التعبيرات العادية الشائعة الاستخدام
اسم المستخدم /^[a-z0-9_-]{3,16}$/
كلمة المرور /^[a-z0-9_-]{6,18}$/
كلمة المرور 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (تتكون من أرقام/حروف كبيرة/حروف صغيرة/رموز، يجب أن تحتوي على الأربعة على الأقل، 8 أحرف أو أكثر)
القيمة الست عشرية /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
البريد الإلكتروني /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ أو \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ أو [a-zA-z]+://[^\s]*
IP العنوان /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ أو ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?[0-9][0-9]?)
علامات HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ أو <(.*)(.*)>.*<\/\1>|<(.*) \/>
إزالة التعليقات \\ الكود (?<!http:|\S)//.*$
مطابقة الأحرف ثنائية البايت (بما في ذلك الحروف الصينية) [^\x00-\xff]
الأحرف الصينية (الحروف) [\u4e00-\u9fa5]
نطاق الأحرف الصينية في ترميز Unicode /^[\u2E80-\u9FFF]+$/
الأحرف الصينية وعلامات الترقيم الكامل (الحروف) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
التاريخ (سنة-شهر-يوم) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
التاريخ (شهر/يوم/سنة) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
الوقت (ساعة:دقيقة، نظام 24 ساعة) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
رقم الهاتف الثابت في البر الرئيسي للصين (\d{4}-|\d{3}-)?(\d{8}|\d{7})
رقم الهاتف المحمول في البر الرئيسي للصين 1\d{10}
الرمز البريدي في البر الرئيسي للصين [1-9]\d{5}
رقم الهوية في البر الرئيسي للصين (15 أو 18 رقم) \d{15}(\d\d[0-9xX])?
عدد صحيح غير سالب (عدد صحيح إيجابي أو صفر) \d+
عدد صحيح إيجابي [0-9]*[1-9][0-9]*
عدد صحيح سالب -[0-9]*[1-9][0-9]*
عدد صحيح -?\d+
عدد عشري (-?\d+)(\.\d+)?
خطوط فارغة \n\s*\r أو \n\n(editplus) أو ^[\s\S ]*\n
رقم QQ [1-9]\d{4,}
كلمات لا تحتوي على abc \b((?!abc)\w)+\b
مطابقة الأحرف البيضاء في البداية والنهاية ^\s*|\s*$
تحرير شائع
إليك بعض الاستبدالات الخاصة بالصينية (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

مرجع التعبيرات العادية - تقنيات التعبيرات العادية الشائعة والشرح النحوي

التعبيرات العادية هي أداة قوية لمعالجة النصوص، تقدم هذه الصفحة لك مرجعًا سريعًا لقواعد التعبيرات العادية، لمساعدتك على فهم قواعد التعبيرات العادية الأساسية، والتعديلات، والتعبيرات الفرعية، وأنماط الجشع وغير الجشع، وغيرها.

قواعد التعبيرات العادية الأساسية

التعبيرات العادية تستخدم لوصف نمط سلسلة من القواعد، تشمل القواعد الأساسية الشائعة:

التعديلات الشائعة للتعبيرات العادية

تستخدم التعديلات لتغيير قواعد مطابقة التعبيرات العادية، ومن أشهر التعديلات:

نمط الجشع وغير الجشع

في التعبيرات العادية، تكون كميات المطابقة افتراضيًا جشعة، حيث تحاول مطابقة أكبر عدد ممكن من الأحرف. تستخدم نمط غير الجشع بإضافة ? بعد الكمية، على سبيل المثال:

التعبيرات الفرعية والمجموعات

تستخدم التعبيرات الفرعية لتعريف جزء محدد من التعبير باستخدام الأقواس (())، وتستخدم عادة لاستخراج الأجزاء المطابقة. يتم تنفيذ المجموعات عبر علامة “|”. مثلاً:

استعلام سريع للتعبيرات العادية

إليك استعلامًا سريعًا للتعبيرات العادية الشائعة:

الوظيفة التعبير العادي
مطابقة رقم \d
مطابقة غير رقم \D
مطابقة حرف [a-zA-Z]
مطابقة أي حرف .
مطابقة حرف فراغ \s

السيناريوهات المستخدمة للتعبيرات العادية

تستخدم التعبيرات العادية في مجموعة واسعة من السيناريوهات:

نصائح لتعلم التعبيرات العادية

استخدم مرجع التعبيرات العادية بسرعة لدينا اليوم، لتكون أكثر كفاءة عند كتابة تعبيرات عادية، مما يعزز قدرتك على معالجة النصوص!

أثر قدميك:
اختر اللغة