Latest web development tutorials

التعبير العادية - أمثلة

عبارات بسيطة

أبسط شكل من أشكال التعبير العادي يطابق حرف واحد عادي من نوعها في سلسلة البحث. على سبيل المثال، وضع حرف واحد، مثل A، سواء في سلسلة البحث حيث دائما يطابق الحرف A. وفيما يلي مثال لنمط التعبير العادية من بعض الشخصيات واحدة:

/a/
/7/
/M/

فإنه يمكن الجمع معا لتشكيل حرف واحد من العديد من التعبيرات كبيرة. على سبيل المثال، التعبير العادي التالي هو مزيج من التعابير حرف واحد: و 7 و م.

/a7M/

لاحظ أن أي مشغل سلسلة. ببساطة اكتب حرف آخر وراء شخصية.

مباريات حرف

نقطة (.) نقاط السلسلة في مجموعة متنوعة من المطبوعات وغير القابلة للطباعة أحرف، باستثناء حرف واحد فقط. والاستثناء هو حرف السطر (\ ن). التعبير العادي التالي مباريات الجميح للسيارات، اي بي سي، لجنة التنسيق الإدارية، شركة تطوير العقبة وغيرها، وكذلك A1C، A2C، والتدقيق، و# ج:

/a.c/

لمطابقة سلسلة تحتوي على اسم الملف، والنقطة (.) هو جزء لا يتجزأ من سلسلة الإدخال، أمام التعبير العادي في الفترة بالإضافة إلى حرف الخط المائل العكسي (\). ولتوضيح ذلك، التعبير العادي التالي مباريات filename.ext على:

/filename\.ext/

هذه التعبيرات تسمح لك لمطابقة "أي" حرف واحد. قد تحتاج إلى قائمة لتتناسب مع مجموعة أحرف محددة. على سبيل المثال، قد ترغب في العثور على عناوين الفصول مع الأرقام (الفصل 1، الفصل 2، وهلم جرا).

عبارات بين قوسين

لإنشاء قائمة من مجموعة شخصية مطابقة، بين قوسين معقوفين ([و]) وضع واحد أو أكثر من الأحرف الفردية داخل. عندما أرفقت شخصية بين قوسين، قائمة تسمى "التعبير قوس." كما هو الحال في أي مكان آخر، وشخصيات عادية تمثل نفسها بين قوسين، وهذا هو، كان يتطابق مع واحد من تلقاء نفسها في إدخال النص. تفقد معناها عند تظهر في التعبير قوس أكثر الشخصيات الخاصة. ولكن هناك بعض الاستثناءات، مثل:

  • إذا] شخصية ليست الأولى، بل هو نهاية القائمة. لتتناسب مع الطابع القائمة]، ووضعها في المقام الأول، ثم في بداية [الجزء الخلفي.
  • \ الأحرف لا يزال حرف هروب. لتتناسب مع \ حرف، استخدام \\.

المغلقة في مباراة التعبير قوس حرف فقط في التعبير العادي في حرف واحد في هذا الموقف. التعبير العادي التالي مطابقة الفصل 1، الفصل 2، الفصل 3، الفصل 4 والفصل 5:

/Chapter [12345]/

يرجى ملاحظة أن الموقع من الفضاء بعد كلمة الفصل وفيما يتعلق حرف داخل أقواس ثابتة. التعبير قوس تحدد مباراة فقط موضع حرف واحد مباشرة بعد الفصل الكلمة والفضاء وراء مجموعة الأحرف. هذا هو موضع الحرف التاسع.

استخدام مجموعة بدلا من الأحرف أنفسهم لتمثيل مطابقة مجموعة أحرف، واستخدام واصلة (-) في مجموعة من الحرف بداية ونهاية حرف على حدة. قيمة حرف لتحديد الترتيب النسبي للأحرف الفردية ضمن النطاق. التعبير العادي التالي يحتوي على التعبير طائفة، والتعبير ما يعادل المدى المبين أعلاه في قائمة قوسين.

/Chapter [1-5]/

عند استخدامها في هذا النطاق بطريقة محددة، يتم تضمين كل من البداية والقيم نهاية في نطاق. ملاحظة ومن المهم أيضا، وفقا لترتيب يونيكود، يجب أن تبدأ قيمة في نهاية القيم السابقة.

أن تدرج في التعبير الواصلة قوس، استخدم إحدى الطرق التالية:

  • مع مائل الخروج منه:
    [\-]
  • الواصلة في بداية أو نهاية القائمة بين قوسين. التعابير التالية تطابق كافة الأحرف الصغيرة والواصلات:
    [-a-z]
    [a-z-]
    
  • إنشاء مجموعة، في هذا النطاق، وقيمة البداية أقل من حرف واصلة وحرف نهاية يساوي أو أكبر من اصلة. التعبيرات العادية التاليين تلبية هذا المطلب:
    [!--]
    [!-~]
    

العثور على قائمة أم لا في نطاق جميع الشخصيات، تعيين الإقحام (^) في بداية القائمة. إذا أي مكان آخر في قائمة لإدراج تظهر الأحرف، ثم يطابق نفسه. التعبير العادي التالي مع أي شخصية أو 4 أو 5 أرقام وبعده:

/Chapter [^12345]/

في المثال أعلاه، والتعبير مع أي 3 أو 4 أو 5 أرقام والحروف عدا في المركز التاسع. وهكذا، على سبيل المثال، الفصل 7 هو مباراة، الفصل 9 من مباراة.

التعبير أعلاه يمكن استخدام واصلة (-) للإشارة إلى:

/Chapter [^1-5]/

إن الاستخدام النموذجي للتعبير قوس هو تحديد أي الأحرف الكبيرة أو الصغيرة أو أي عدد من المباريات. يحدد التعبير التالي مثل هذه المباراة:

/[A-Za-z0-9]/

بدائل والتجميع

استبدال استخدام | شخصية للسماح بالاتصال بين اثنين أو أكثر من البدائل لاختيار. على سبيل المثال، عناوين الفصول ويمكن تمديد التعابير العادية للعودة إلى مجموعة واسعة من تطابق عنوان الفصل. ومع ذلك، هذا ليس بسيطا كما قد يتصور البعض. استبدال المباراة | طابع الحد الأقصى التعبير عن أي جانب واحد.

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

/^Chapter|Section [1-9][0-9]{0,1}$/

للأسف، التعبير العادي أعلاه مطابقة خطوط إما الأول الفصل كلمة، أو نهاية مطابقة للخط مع قسم كلمة وأي أرقام لاحقة. إذا كانت السلسلة الإدخال الفصل 22، ثم التعبير أعلاه مباريات فقط كلمة الفصل. إذا كانت السلسلة الإدخال القسم 22، ثم التعبير مباريات القسم 22.

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

يستخدم التعبير العادي التالي قوسين للفصل مجموعة والقسم، من أجل وظيفة التعبير بشكل صحيح:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

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

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

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

وبالإضافة إلى ذلك :؟ الطابع اكسون، والاثنان الآخران الأحرف الخاصة غير التقاط خلق ما يسمى "lookahead" مباراة. استخدام lookahead إلى الأمام؟ = محدد، كان يتطابق بين قوسين تطابق نمط التعبير المنتظم للنقطة انطلاق لسلسلة البحث. عكس استخدام lookahead ؟! محدد، فإنه مباريات في نمط التعبير العادي لا يتطابق مع سلسلة البحث سلسلة تبدأ.

على سبيل المثال، افترض أن لديك مستند يحتوي على وصلات إلى ويندوز 3.1، ويندوز 95، ويندوز 98 والمراجع ويندوز NT ل. نفترض أيضا أن كنت بحاجة إلى تحديث وثيقة تشير إلى ويندوز 95، تغيرت Windows 98 و Windows NT كافة المراجع إلى نظام التشغيل Windows 2000. التعبير العادي التالي (وهذا هو أول مثال على التنبؤ إلى الأمام) تتطابق مع ويندوز 95، ويندوز 98 و ويندوز NT:

/Windows(?=95 |98 |NT )/

العثور على تطابق، أن المباراة على الفور بالبحث عن المباراة المقبلة في النص (وليس بما في ذلك أحرف lookahead) بعد. على سبيل المثال، إذا مطابقة التعبير أعلاه ويندوز 98، وبدلا من ذلك مواصلة البحث بعد 98 بعد ويندوز.

أمثلة أخرى

وفيما يلي بعض الأمثلة على التعابير العادية:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。