RegEx في Python
- Previous Page JSON في Python
- Next Page PIP في Python
RegEx أو تعبير النمط هو سلسلة من الأحرف التي تشكل نموذج البحث.
RegEx يمكن استخدامها للتحقق من أن النص يحتوي على نموذج البحث المحدد.
نموذج RegEx
Python يقدم اسمًا re
المدمج، يمكن استخدامه لمعالجة تعبيرات النص العادية。
استيراد re
المodule
import re
تعبيرات النص العادية في Python
استيراد re
بعد تثبيت المodule، يمكن البدء في استخدام تعبيرات النص العادية
Instance
البحث في النص لمعرفة ما إذا كان يبدأ بالنص "China" ويختم بالنص "country"
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
وظائف RegEx
re
يقدم المodule مجموعة من الوظائف، مما يسمح لنا بالبحث في النصوص لتحقيق المطابقات:
الوظيفة | الوصف |
---|---|
findall | يعود بمجموعة من جميع المطابقات |
search | إذا كان هناك مطابق في أي مكان في النص، فإنه يعود بموضوع Match |
split | يعود بمجموعة من النصوص التي يتم تقسيمها في كل مطابقة |
sub | استبدال مجموعة من المطابقات بنص |
الرموز
الرموز هي الأحرف التي تحتوي على معنى خاص:
حرف | الوصف | مثال | TIY |
---|---|---|---|
[] | مجموعة من الأحرف | "[a-m]" | تجربة |
\ | توضيح السلسلة الخاصة (يمكن استخدامها أيضًا للهروب من الأحرف الخاصة) | "\d" | تجربة |
. | أي حرف (استثنًا الرمز النصي للتنقل) | "he..o" | تجربة |
^ | يبدأ به | "^hello" | تجربة |
$ | ينتهي به | "world$" | تجربة |
* | لا مرة أو أكثر | "aix*" | تجربة |
+ | مرة واحدة أو أكثر | "aix+" | تجربة |
{} | مرة أو أكثر من المحددة بدقة | "al{2}" | تجربة |
| | أحدهما | "falls|stays" | تجربة |
() | التقاطع والتنسيق |
السلسلة الخاصة
السلسلة الخاصة تعني \
يتبعه أحد الأحرف المذكورة في الجدول التالي، يمتلك معنى خاص:
حرف | الوصف | مثال | TIY |
---|---|---|---|
\A | إذا كان الحرف المحدد موجودًا في بداية النص، فإنه يعود بمطابقة | "\AThe" | تجربة |
\b | يعود بمطابقة الحرف المحدد موجودًا في بداية الكلمة أو نهايتها |
r"\bain" r"rain\b" |
تجربة تجربة |
\B | يعود بمطابقة الحرف المحدد موجودًا، لكنه ليس في بداية الكلمة (أو نهايتها) |
r"\Bain" r"rain\B" |
تجربة تجربة |
\d | يعود بمطابقة النص يحتوي على أرقام (الأرقام 0-9) | "\d" | تجربة |
\D | يعود بمطابقة النص لا يحتوي على أرقام | "\D" | تجربة |
\s | يعود بمطابقة النص يحتوي على حروف فراغ | "\s" | تجربة |
\S | يعود بمطابقة النص لا يحتوي على حروف فراغ | "\S" | تجربة |
\w | يعود بمطابقة يحتوي النص على أي حرف كلمة (من a إلى Z من الأحرف، من 0 إلى 9 من الأرقام وخط العلامة التشغيل _) |
"\w" | تجربة |
\W | يعود بمطابقة يحتوي النص على أي حرف غير كلمة | "\W" | تجربة |
\Z | إذا كان الحرف المحدد موجودًا في نهاية النص، فإنه يعود بمطابقة | "Spain\Z" | تجربة |
الجمع (Set)
المجموعة (Set) هي زوج من الأسهم المزدوجة []
مجموعة من الأحرف الموجودة في:
المجموعة | الوصف | تجربة |
---|---|---|
[arn] | العودة إلى تطابق يحتوي على أي من الأحرف المحددة (a، r أو n) | تجربة |
[a-n] | العودة إلى تطابق أي حرف صغير بين a و n | تجربة |
[^arn] | العودة إلى تطابق يحتوي على أي حرف غير a، r و n | تجربة |
[0123] | العودة إلى تطابق يحتوي على أي من الأرقام المحددة (0، 1، 2 أو 3) | تجربة |
[0-9] | العودة إلى تطابق أي رقم بين 0 و 9 | تجربة |
[0-5][0-9] | العودة إلى تطابق أي رقم بين 0 و 9 | تجربة |
[a-zA-Z] | العودة إلى تطابق أي حرف بين a و z، سواء كان صغيرًا أو كبيرًا | تجربة |
[+] | في المجموعة، +، *، .، |، ()، $، {} ليس لها معنى خاص، لذا [+] يعني: العودة إلى تطابق أي حرف + في النص | تجربة |
وظيفة findall()
findall()
الوظيفة تعود قائمة تحتوي على جميع التطابقات.
Instance
اطبع قائمة التطابق كلها:
import re str = "China is a great country" x = re.findall("a", str) print(x)
تتضمن هذه القائمة التطابق الذي تم العثور عليه بالترتيب.
إذا لم يتم العثور على تطابق، يتم العودة إلى قائمة فارغة:
Instance
إذا لم يتم العثور على تطابق، يتم العودة إلى قائمة فارغة:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
وظيفة search()
search()
الوظيفة تبحث في التطابق في النص، إذا كان هناك تطابق يتم العودة إلى كائن Match.
إذا كان هناك تطابق متعدد، يتم العودة إلى التطابق الأول فقط:
Instance
البحث في النص للحرف الفراغي الأول:
import re str = "China is a great country" x = re.search("\s", str) print("الوحدة الفرعية الأولى للحرف الفراغي هي الموضع:", x.start())
إذا لم يتم العثور على تطابق، يتم العودة إلى القيمة: None
:
Instance
البحث دون العودة إلى التطابق:
import re str = "China is a great country" x = re.search("USA", str) print(x)
وظيفة split()
split()
الوظيفة تعود قائمة تحتوي على النصوص التي تم تقسيمها عند كل تطابق:
Instance
قسم عند كل حرف فراغي:
import re str = "China is a great country" x = re.split("\s", str) print(x)
You can specify maxsplit
المعدل لتحكم في عدد الظهور:
Instance
قسم فقط عند الظهور الأولي للنص:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
وظيفة sub()
sub()
الوظيفة تتبادل التغيير مع النص الذي اخترته:
Instance
باستخدام الرقم 9 لتبديل كل حرف فراغي:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
You can specify count
Parameter to control the number of replacements:
Instance
Replace the first two occurrences:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Match Object
The Match object is an object that contains information about the search and results.
Note:If there is no match, the return value None
،而不是 Match Object.
Instance
The search will return a Match object:
import re str = "China is a great country" x = re.search("a", str) print(x) # Will print an object
The Match object provides attributes and methods for retrieving information about the search and results:
span()
The returned tuple contains the start and end positions of the match.string
Return the string passed to the functiongroup()
Return the matched string part
Instance
Print the position of the first match (start and end position).
Regular expression to find any word starting with uppercase "C":
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Instance
Print the string passed to the function:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Instance
Print the matched string part.
Regular expression to find any word starting with uppercase "C":
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Note:If there is no match, the return value None
،而不是 Match Object.
- Previous Page JSON في Python
- Next Page PIP في Python