Latest web development tutorials

بيثون التعبير العادية

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

إعادة الثعبان زيادة حدة منذ الإصدار 1.5، نمط التعبير العادي الذي يوفر على غرار بيرل.

إعادة وحدة تسمح لغة بيثون لديه كل الميزات من التعابير العادية.

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

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

يقدم هذا القسم بيثون وظائف معالجة التعبير العادية المشتركة.


وظيفة re.match

re.match يحاول تتطابق مع نمط من نقطة الانطلاق لسلسلة، إن لم يكن مطابقة نقطة الانطلاق ناجحا، مباراة () إرجاع لا شيء.

وظيفة بناء الجملة:

re.match(pattern, string, flags=0)

وظيفة المعلمات:

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

نجاح طريقة مباراة re.match بإرجاع كائن المباراة، وإلا لا شيء.

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

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

مثال 1:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配

تشغيل إخراج المثال أعلاه هو:

(0, 3)
None

مثال 2:

#!/usr/bin/python
import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:
   print "matchObj.group() : ", matchObj.group()
   print "matchObj.group(1) : ", matchObj.group(1)
   print "matchObj.group(2) : ", matchObj.group(2)
else:
   print "No match!!"

نتائج الأمثلة المذكورة أعلاه هي على النحو التالي:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

طريقة re.search

re.search مسح السلسلة بأكملها ويعود أول مباراة ناجحة.

وظيفة بناء الجملة:

re.search(pattern, string, flags=0)

وظيفة المعلمات:

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

نجاح طريقة مباراة re.search بإرجاع كائن المباراة، وإلا لا شيء.

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

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

مثال 1:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.search('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.search('com', 'www.w3big.com').span())         # 不在起始位置匹配

تشغيل إخراج المثال أعلاه هو:

(0, 3)
(11, 14)

مثال 2:

#!/usr/bin/python
import re

line = "Cats are smarter than dogs";

searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)

if searchObj:
   print "searchObj.group() : ", searchObj.group()
   print "searchObj.group(1) : ", searchObj.group(1)
   print "searchObj.group(2) : ", searchObj.group(2)
else:
   print "Nothing found!!"
نتائج الأمثلة المذكورة أعلاه هي على النحو التالي:
searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

الفرق re.match وre.search

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

على سبيل المثال:

#!/usr/bin/python
import re

line = "Cats are smarter than dogs";

matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
   print "match --> matchObj.group() : ", matchObj.group()
else:
   print "No match!!"

matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
   print "search --> matchObj.group() : ", matchObj.group()
else:
   print "No match!!"
أمثلة على النتائج المذكورة أعلاه هي كما يلي:
No match!!
search --> matchObj.group() :  dogs

بحث واستبدال

وحدة إعادة بايثون توفر re.sub للمباراة سلسلة الاستبدال.

بناء الجملة:

re.sub(pattern, repl, string, max=0)

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

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

على سبيل المثال:

#!/usr/bin/python
import re

phone = "2004-959-559 # This is Phone Number"

# Delete Python-style comments
num = re.sub(r'#.*$', "", phone)
print "Phone Num : ", num

# Remove anything other than digits
num = re.sub(r'\D', "", phone)    
print "Phone Num : ", num
نتائج الأمثلة المذكورة أعلاه هي على النحو التالي:
Phone Num :  2004-959-559
Phone Num :  2004959559

معدل رجإكس - العلم اختياري

التعابير العادية يمكن أن تحتوي اختياري الأعلام معدلات للسيطرة على الوضع المباراة. يتم تحديد معدل باعتباره العلم اختياري. (|) لتحديد إشارات متعددة والتي يمكن أحادي المعامل أو من خلال. كما re.I | تم تعيين re.M أعلام الأول وM:

معدلات وصف
re.I بحيث مطابقة حساسة لحالة
re.L هل تحديد توطين (-لغة علم) مطابقة
re.M خط متعددة مطابقة، مما يؤثر ^ و$
re.S هكذا ...، أسطر جديدة بما في ذلك مباراة كل الحروف
re.U وفقا لحل يونيكود مجموعة الأحرف حرفا. يؤثر هذا العلم \ ث، \ W \ ب \ ب.
re.X هذا العلم عن طريق إعطائك شكل أكثر مرونة حتى يتسنى لك كتابة التعابير العادية أسهل للفهم.

نمط التعبير العادي

نمط السلسلة باستخدام بناء جملة خاص للدلالة على التعبير العادية:

حروف والأرقام أنفسهم. نمط التعبير العادية من الحروف والأرقام تتطابق مع نفس السلسلة.

ومعظم الحروف والأرقام لها معنى مختلف عند يسبقه مائل.

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

مائل نفسها بحاجة إلى استخدام الخط المائل العكسي.

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

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

طريقة وصف
^ يتطابق مع بداية السلسلة
$ مباريات نهاية السلسلة.
. يطابق أي حرف باستثناء السطر الجديد، عندما يتم تحديد re.DOTALL العلم، يمكنك أن تطابق أي حرف بما في ذلك السطر.
[...] وهي تستخدم لتمثيل مجموعة من الشخصيات، وسرد كل على حدة: [AMK] مباراة "أ"، "م" أو "ك"
[^ ...] لا [] الشخصيات: [^ اي بي سي] مباريات بالإضافة إلى أحرف أ، ب، ج.
إعادة * 0 أو أكثر من مطابقة التعبير.
إعادة + واحد أو أكثر من التعبيرات مطابقة.
إعادة؟ النتيجة 0 أو 1 من التعابير العادية السابقة لتحديد القطاعات، بطريقة غير الجشع
إعادة {ن}
إعادة {ن،} تطابق تام ن السابقة التعبير.
إعادة {ن، م} مباراة ن إلى العصور م بواسطة التعابير العادية السابقة لتحديد شرائح، طريقة الجشع
و| ب مباراة أو ب
(إعادة) G التعبير مباراة ضمن الأقواس، ويمثل أيضا مجموعة
(؟ IMX) يتكون التعبير العادية من ثلاثة أعلام اختياري: ط، م، أو الأشعة. فإنه يؤثر فقط على منطقة بين قوسين.
(؟ -imx) التعابير العادية إغلاق ط، م، س أو العلم اختياري. فإنه يؤثر فقط على منطقة بين قوسين.
(؟: إعادة) على غرار (...)، ولكن لا تمثل مجموعة
(IMX :؟ إعادة) يمكنني استخدام بين قوسين، م، س أو العلم اختياري
(-imx :؟ إعادة) لا تستخدم ط، م بين قوسين، أو س العلم اختياري
(؟ # ...) ملاحظة.
(؟ = إعادة) إلى الأمام على يقين محدد. إذا كان التعبير العادي الواردة، ممثلة هنا من قبل ...، مباريات بنجاح في الموقع الحالي، وفشل خلاف ذلك. ومع ذلك، مرة واحدة وقد حاول التعبير الواردة، ومحرك التصفح لا تقدم، ما تبقى من هذا النمط حتى محاولة الصحيح محدد.
(؟! رد) إلى الأمام نفي محدد. وبالتأكيد محدد مخالف، ناجحة عندما التعبير الواردة لا يتطابق مع الوضع الحالي في السلسلة
(؟> إعادة) مطابقة نمط مستقل، والقضاء على التراجع.
\ W أبجدية مباراة وسفلية
\ W مباراة غير أبجدية وسفلية
\ S مباريات أي حرف مسافة بيضاء، أي ما يعادل [\ ر \ ن \ ص \ و].
\ S يطابق أي حرف غير فارغ
\ D يطابق أي الرقم الذي يعادل [0-9].
\ D يطابق أي غير رقمية
\ A يتطابق مع بداية السلسلة
\ Z نهاية سلسلة المباراة، وإذا كان موجودا السطر الجديد، قبل نهاية السلسلة لمباراة السطر. ج
\ Z نهاية سلسلة مباراة
\ G مباراة مباراة الانتهاء المركز الأخير.
\ B مباريات كلمة حدود، أي أنه يشير إلى الموقع والمساحات بين الكلمات. على سبيل المثال، "إيه \ ب" يمكن أن تتطابق مع "أبدا" في "إيه"، ولكن لا يمكن أن تتطابق مع "الفعل" في "إيه".
\ B مباراة غير كلمة للحدود. 'ايه \ B' يمكن أن تتطابق مع "الفعل" في "إيه"، ولكن لا يمكن أن المباراة "أبدا" في "إيه".
\ N \ تي، وما شابه ذلك. مباريات سطر جديد. مباريات حرف جدولة. انتظر
\ 1 ... \ 9 مطابقة التعبير الفرعي حزمة ن عشر.
\ 10 مباراة أول الحزم ن التعبير الجزئي إذا كان بعد المباراة. خلاف ذلك، يشير التعبير إلى رمز الحرف ثماني.

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

مباريات حرف

أمثلة وصف
الثعبان مطابقة "الثعبان".

فصول الطابع

أمثلة وصف
[ص] ython مطابقة "بايثون" أو "الثعبان"
فرك [أيها] مباراة "روبي" أو "الساذج"
[AEIOU] أي واحدة من الرسائل الواردة بين قوسين مطابقة
[0-9] يطابق أي أرقام. على غرار [0123456789]
[من الألف إلى الياء] يطابق أي أحرف صغيرة
[AZ] يطابق أي الأحرف الكبيرة
[A-ي0-9] يطابق أي الحروف والأرقام
[^ AEIOU] بالإضافة إلى جميع الشخصيات الأخرى من رسائل AEIOU
[^ 0-9] مطابقة حرف باستثناء الأرقام

الطابع الطبقات الخاصة

أمثلة وصف
. يطابق أي حرف واحد باستثناء "\ ن" هو. لتتناسب بما في ذلك '\ ن'، بما في ذلك أية حروف، مثل استخدام "[. \ N] 'واسطة.
\ D مباريات ذات طابع أرقام. أي ما يعادل [0-9].
\ D تطابق أحرف غير رقمية. وهو ما يعادل [^ 0-9].
\ S يطابق أي أحرف المسافات البيضاء، بما في ذلك المسافات، علامات، فواصل الصفحات، وهلم جرا. ما يعادل [\ و \ ن \ ص \ ر \ ت].
\ S يطابق أي أحرف غير مسافة بيضاء. ما يعادل [^ \ و \ ن \ ص \ ر \ ت].
\ W تطابق أي حرف كلمة بما في ذلك تسطير. وهو ما يعادل "[A-زا-z0-9_] '.
\ W مباريات أي حرف غير كلمة. وهو ما يعادل "[^ A-زا-z0-9_] '.