Latest web development tutorials

التعبير العادية - بناء الجملة

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

  • كتالوج العمود، دير *. TXT ليرة سورية *. TXT أو *. TXT ليس في التعبير العادي، لأن هناك * غير * مع معنى التعبير العادية يختلف.
  • طريقة بناء تعبير عادي وخلق التعبيرات الرياضية بنفس الطريقة. وهذا هو، وذلك باستخدام مجموعة متنوعة من الأحرف الخاصة ومشغلي يمكن الجمع بين العبارات الصغيرة معا لإنشاء تعبيرات أكبر. يمكن التعابير العادية المكونة يكون حرف واحد، مجموعة الأحرف، الاختيار من بين مجموعة من الشخصيات، وبين الشخصيات، أو أي مزيج من كل هذه المكونات.

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

الأحرف العادية

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

الأحرف غير المطبوعة

الأحرف غير القابلة للطباعة ويمكن أيضا أن تكون جزءا من التعبير العادي. يسرد الجدول التالي أحرف التي تمثل الأحرف غير المطبوعة:

字符 描述
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\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。

أحرف خاصة

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

تتطلب العديد من الأحرف الخاصة معاملة خاصة عند محاولة مطابقتها. لتتناسب مع هذه الأحرف الخاصة، يجب التأكد أولا الحرف "الهروب"، أي حرف الخط المائل العكسي (\) أمامهم. يسرد الجدول التالي الأحرف الخاصة العادية التعبير:

特别字符 描述
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
. 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ 标记限定符表达式的开始。要匹配 {,请使用 \{。
| 指明两项之间的一个选择。要匹配 |,请使用 \|。

مؤهل

يستخدم تصفيات لتحديد التعبير العادي من مكون معين يجب أن تظهر عدة مرات لتلبية المباراة. هناك * أو + أو أم {ن} أو {ن،} أو {ن، م} ما مجموعه 6.

التعابير العادية التصفيات المؤهلة هي:

字符 描述
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

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

/Chapter [1-9][0-9]*/

يرجى ملاحظة أن التصفيات المؤهلة ليظهر بعد التعبير النطاق. وبالتالي، فإنه ينطبق على مجموعة كاملة من التعبير، في هذه الحالة، وعدد محدد فقط 0-9 (بما في ذلك 0 و 9).

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

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

/Chapter [0-9]{1,2}/

العيب من التعبير أعلاه هو أكبر من 99 فصول لا يزال عددهم فقط مباريات بداية من رقمين. وثمة عيب آخر هو أن الفصل 0 سوف تتطابق أيضا. مطابقة أفضل من رقمين فقط التعبير على النحو التالي:

/Chapter [1-9][0-9]?/

أو

/Chapter [1-9][0-9]{0,1}/

*، +، و؟ تصفيات هي الجشع لأنها تتناسب مع الكثير من النص، فقط وراءها، بالإضافة إلى هل يمكن أن يتحقق مباراة غير الجشع أو الحد الأدنى.

على سبيل المثال، قد تبحث عن مستندات HTML لتجد المغلقة في H1 العلامات المقطع العناوين. النص في الوثيقة على النحو التالي:

<H1>Chapter 1 – Introduction to Regular Expressions</H1>

جميع محتويات تطابق العبارات التالية التي تبدأ من أقل من تسجيل (<) لإغلاق علامة H1 أكبر من الرمز (>) بين.

/<.*>/

إذا كنت بحاجة فقط لتتناسب مع بداية علامات H1، التعبير التالي "غير الجشع" مباريات فقط <H1>.

/<.*?>/

بواسطة *، +، أو؟ وبعد المكان تصفيات؟ يمكن للتعبيرات التحول من "الجشع" إلى "غير الجشع" أو الحد الأدنى من مطابقة التعبير.

لتحديد المواقع

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

تحديد المواقع تستخدم لوصف سلسلة أو كلمة حدود، ^ و$ الرجوع إلى بداية ونهاية السلسلة، \ ب] وصف الحدود قبل أو بعد الكلمة، يمثل \ باء غير كلمة للحدود.

التعابير العادية التصفيات المؤهلة هي:

字符 描述
^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
$ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
\b 匹配一个字边界,即字与空格间的位置。
\B 非字边界匹配。

ملاحظة: لا يمكنك استخدام نقطة التصفيات المؤهلة لومرساة. لأنه مباشرة قبل أو بعد حدود التفاف أو كلمة لا يمكن أن يكون أكثر من موقع واحد، وبالتالي لا يسمح مثل هذا التعبير مثل ^ *.

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

لمطابقة النص في نهاية سطر من النص، انظر نهاية التعبير عن الرأي $ الشخصيات في الإيجابية.

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

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

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

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

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

/\bCha/

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

/ter\b/

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

/\Bapt/

يبدو سلسلة كلمة ملائمة في الفصل غير كلمة للحدود، ولكن تظهر كلمة في الاستعداد للكلمة من الحدود. للمشغل الحدود غير كلمة B \، موقف ليس مهما، لأن المباراة لا يهمني سواء كان في بداية أو نهاية الكلمة.

اختر

استخدام الأقواس لإحاطة جميع الاختيارات، مع خيارات بين المتاخمة مفصولة |. ولكن هناك من الآثار الجانبية لاستخدام الأقواس، غير مباريات ذات الصلة سوف يكون مؤقتا، متوفرة في هذا الوقت :؟ على الخيار الأول للقضاء على هذه الآثار الجانبية.

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

Backreferences

لنمط منتظم التعبير أو جزء من نمط من الجانبين سيؤدي إلى أقواس وأضاف مباراة ذات الصلة إلى المخزن مؤقت التخزين المؤقت، كل الفرعية القبض يتم تخزين بالترتيب من اليسار إلى اليمين مباراة تظهر في نمط التعبير العادية. عازلة رقم (1) من البداية، يمكن تخزين ما يصل إلى 99 التعبير الجزئي القبض عليه. كل عازلة يمكن استخدام '\ ن' زيارة، حيث n هو واحد أو اثنين من الأرقام العشرية تحديد المخزن المؤقت المحدد.

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

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

Is is the cost of of gasoline going up up?

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

/\b([a-z]+) \1\b/gi

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

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

ويمكن أيضا أن يكون Backreferences على مؤشر الموارد العالمي (URI) إلى مكوناته. افترض أنك تريد تقسيمها إلى ما يلي بروتوكول URI (بروتوكول نقل الملفات، المتشعب، وما إلى ذلك)، عناوين نطاق وصفحة / مسار:

http://www.w3cschool.cc:80/html/html-tutorial.html

يوفر التعبير العادي التالي هذه الوظيفة:

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

أول التعبير الجزئي قوسين يلتقط الجزء بروتوكول عنوان ويب. والتعبير الجزئي مع أي كلمة القولون واثنين مائلة أمام. والتعبير الجزئي قوسين الثاني يجسد جزءا عنوان المجال من عنوان. حرف واحد أو أكثر بخلاف: التعبير الجزئي المباراة / و. والتعبير الجزئي قوسين الثالث التقاط رقم المنفذ (إذا تم تحديد واحد). التعبير شبه مطابقة صفر أو أكثر الأرقام بعد النقطتين. لا يمكن إلا أن يتكرر مرة واحدة في التعبير الفرعي. وأخيرا، فإن التعبير الجزئي قوسين الرابع يلتقط المسار المحدد عنوان ويب و / أو الصفحة. وهذا لا يشمل تعبير الفرعي مع أي تسلسل الأحرف # أو الفضاء حرفا.

التعبير العادي تطبيقها على ما سبق URI، ودخول شبه مطابقة يحتوي على العناصر التالية:

  • ويتضمن أول التعبير الجزئي قوسين "HTTP"
  • يحتوي على التعبير الجزئي قوسين الثاني "www.w3cschool.cc"
  • والتعبير الجزئي قوسين الثالث ": 80"
  • يحتوي على التعبير الجزئي قوسين الرابع "/html/html-tutorial.html"