textarea is empty

‎عبارات منظم پايتون ـPython RegEx

Previous >    <Next  

RegEx‎يا عبارت منظم، دنباله اي از كراكترهاست كه يك الگوي جستجو را تشكيل ميدهد.مي توان از RegEx‎براي بررسي اينكه آيا يك رشته شامل الگوي جستجوي مشخص شده است يا خير، استفاده كرد.

‎ماژولRegEx

‎پايتون براي عبارات منظم يك بسته داخلي بنام‎re‎ دارد كه ميتوان ازآن استفاده كرد. ‎براي استفاده بايد آن وارد‎(import re)‎‎ شود.

RegEx‎در پايتون

‎وقتي ماژول‎re‎ را وارد كرديد، مي توانيد از عبارات منظم استفاده كنيد .

‎مثال ـ جستجو در رشته اي كه آيا آن با كلمه‎‎"the‎"‎ شروع وبا كلمه ‎‎"span‎"‎ ‎پايان يافته است.

--(go to editor for change code and run)

‎توابع عبارات منظم ـRegEx Functions

‎ماژول‎re‎ مجموعه از توابع را براي جستجوي موارد تطبيق در رشته، ارائه ميدهد . ‎اين توابع مطابق جدول زيرمي باشند:

‎تابع ‎شرح
findall ‎ليستي شامل تمام تطبيق ها برگشت ميدهد.
search ‎اگر درهر جائي از رشته ، تطابقي وجود داشته باشد، يك شئ تطبيق‎(match object)برگشت ميدهد
split ‎ليستي را برميگرداند كه در آن رشته در هر مورد تطبقه ، تقسيم شده است.
sub ‎يك يا چند مورد تطبيق را با رشته اي جايگزين ميكند.

‎متا كراكترها ـMetacharcters

‎متا كراكترها ، كراكترهائي با معنائي خاص ميباشند .جدول آنها مطابق زير است.

‎كراكتر ‎شرح ‎مثال ‎تلاش
‎دراجرا
[] ‎يك مجموعه كراكتر "[a-m]"
\ ‎يك توالي خاص را نشان ميدهد.
‎همچنين مي تواند برايescape كردن كراكترهاي خاص استفاده شود .
"\d"
. ‎هر كراكتري بجزء كراكتر خط جديد "he..o"
^ ‎شروع با "^hello"
$ ‎انتها با "planet$"
* ‎هيچ يا تكرار بيشتر
‎مثال باhe شروع وبدنباله هركراكتري هيچ يا چندتا وسپسo
"he.*o"
+ ‎يكي يا تكرار بيشتر
‎مثال باhe شروع وبدنباله هركراكتري يكي يا چندتا وسپسo
"he.+o"
? ‎هيچ يا يك مورد وقوع
‎مثال باhe شروع وبدنباله هيچ يا يكي كراكتر وسپسo
"he.?o"
{ } ‎دقيفا به تعداد مشخص شده تكرار شود. "he.{2}o"
| ‎اين يا اين "falls|stays"
( ) ‎ضبط وگروه بندي

‎پرچم ها ـFlags

‎هنگام استفاده از عبارات منظم مي توانيد پرچم ها را هم به الگو اضافه كنيد .جدول فلگ ها مطابق ‎زير است.

‎فلگ ‎فرم كوتاه ‎شرح ‎تلاش
‎دراجرا
re.ASCII re.A ‎برگشت فقط تطبيق اسكي كراكتر
re.DEBUG ‎برگشت اطلاعات براي اشكال زدائي
re.DOTALL re.S ‎تطبيق با همه كراكترها ازجمله كراكتر خط جديد
re.IGNORECASE re.I ‎تطبيق بدون حساسيت به كوچكي وبزرگي حروف
re.MULTILINE re.M ‎تطبيق فقط در شروع هر خط
re.NOFLAG ‎مشخص ميكند كه هيچ فلگي براي الگو مشخص نشده است
re.UNICODE re.U ‎تطابق هاي يونيكد را برگشت ميدهد پيش فرض پايتون3
‎درپايتون‎2‎ از فلگ براي تطابق استفاده ميشود .
re.VERBOSE re.X ‎اجازه ميدهد از بلنك و كامنت درون الگو براي خوانائي استفاده شود.

‎توالي ويژه ـSpecial Sequences

‎يك توالي خاص، يك‎\‎ است كه بدنبال آن يكي از كراكترهاي ليست زير بوده وهر كدام ‎معناي خاصي دارند:

‎كرا
‎كتر
‎شرح ‎مثال ‎تلاش
‎دراجرا
\A ‎اگر كراكترهاي مشخص شده در ابتداي رشته باشد، يك تطبيق برگشت ميشود. "\AThe"
\b ‎اگر كراكترهاي مشخص شده درابتدا يا انتهاي كلمه باشند، تطبيق برگشت ميشود.
r‎درابتدا براي اين قرار دارد كه رشته خام در نظر گرفته شود .
r"\bain"
r"ain\b"

\B ‎اگر كراكترهاي مشخص موجود باشند اما نه در انتداي وانتهاي كلمه، تطبيق برگشت ميشود.
r‎درابتدا براي اين قرار دارد كه رشته خام در نظر گرفته شود .
r"\Bain"
r"ain\B"

\d ‎اگر رشته داراي رقم عددي‎(0-‎9)‎ باشد تطبيق برگشت ميشود . "\d"
\D ‎اگر رشته داراي رقم عددي‎(0-‎9)‎ نباشد تطبيق برگشت ميشود. "\D"
\s ‎اگر رشته داراي بلنك يا كراكتر فاصله باشد تطبيق برگشت ميشود. "\s"
\S ‎اگر رشته داراي بلنك يا كراكتر فاصله نباشد تطبيق برگشت ميشود. "\S"
\w ‎اگر رشته داراي هر كراكتر كلمه اي باشد تطبيق برگشت ميشود.
(a-Z,0-9, _) كراكتر كلمه اي
"\w"
\W ‎اگر رشته داراي كراكتر هاي كلمه اي نباشد تطبيق برگشت ميشود.
‎كراكتر كلمه اي‎(a-‎Z,0-‎9, _)
"\W"
\Z‎اگر كراكترهاي مشخص شده به ترتيب در آخر رشته باشد، تطبيق برگشت ميشود. "Spain\Z"

‎مجموعه ها ـSets

‎يك مجموعه تطبيق، مجموعه از كراكترهاست كه در داخل يك جفت براكت‎[ ]‎ قرار

‎ميگيرند و معناي خاصي دارند.

‎مجموعه ‎شرح ‎تلاش
‎دراجرا
[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] ‎برگشت تطبيق براي وجود اعداد دورقمي بين‎00-‎59
[a-zA-Z] ‎برگشت تطبيق براي وجود هر حرف الفابت بزرگ يا كوچك
[+] ‎كراكترهاي‎+,*,.,)(,,,|${}‎ معناي خاصي ندارند.
‎درنمونه اگر كراكتر‎+‎ وجو داشته باشد، تطبيق برگشت ميشود .

‎تابعfindall()‎

‎تابع‎finall()‎‎ ليستي از تمام تطبق ها را برگشت ميدهد

‎مثال ـ ليستي از تمام تطبيق ها چاپ ميكند

--(go to editor for change code and run)

‎اين ليست شامل مواردمنطبق به ترتيبي است كه يافت ميشود.

‎اگر هيچگونه تطبيقي يافت نشود، برگشتي يك ليست تهي ميباشد.

‎مثال ـ اگر تطبيقي يافت نشود برگشتي ليست تهي است.

--(go to editor for change code and run)

‎تابع‎search()‎‎ رشته اي را براي يافتن يك تطابق جستجو ميكند و در صورت وجود ‎تطبيق، يك شئ تطبيق‎(Match object)‎‎برگشت ‎ميدهد .اگر بيشترازيك مطابقت وجود داشته باشد، فقط يكي برگشت ميشود.

‎مثال ـ جستجوي اولين فضاي خالي يا كراكتربلنك

--(go to editor for change code and run)

‎اگر هيچ تطبيقي وجود نداشته باشد، برگشتي مقدار‎None‎ ميباشد.

‎مثال ـ انجام جستجو بدون تطابق

--(go to editor for change code and run)

‎تابعsplit()‎

‎تابع‎split()‎‎ ليستي را برگشت ميدهد كه در آن رشته عناصر ليست عامل تقسيم ‎ميباشند.

‎مثال ـ برسي تقسيم رشته در هر فضاي خالي يا كراكتر بلنك

--(go to editor for change code and run)

‎ميتوان تعداد تكرارها را با پارامتر‎maxsplit‎ كنترال كرد .

‎مثال ـ اولين وقوع تقسيم رشته

--(go to editor for change code and run)

‎تابعsub()‎

‎تابع‎sub()‎‎ موارد منطبق را با متن مشخص شده جايگزين ميكند .

‎مثال ـ جايگزين هر كراكتر فاصله خالي با عدد‎9

--(go to editor for change code and run)

‎ميتوان تعداد جايگزين ها را با مشخص كردن پارامتر‎count‎ كنترل نمود .

‎مثال ـ جايگزيني در دو تطبيق اوليه

--(go to editor for change code and run)

‎شئ تطبيق ـMatch Object

‎يك شئي تطبيق‎(Match Object)‎ شئ است كه شامل اطلاعاتي در مورد جستجو و نتيجه آن ‎است.

‎نكته ـ اگر مورد تطبيقي وجود نداشته باشد، برگشتي شئ تطبيق نيست ومقدار‎None‎ ‎برگشت ميشود.

‎مثال ـ برگشت شئ تطبيق در يك جستجو

--(go to editor for change code and run)

‎شئ تطبيق‎(Match Object)‎ داراي ويژگي و متدهائي است كه براي بازيابي اطلاعات ‎مربوط به نتيجه جستجو ، مورد استفاده ميباشد.

.span()‎‎تاپلي را برگشت ميدهد كه شامل شروع ، پايان موقعيت تطبيق ميباشد .

.string‎رشته اي كه در تابع ارسال شده برگشت ميدهد .

‎تابع‎.group()‎‎قسمتي از رشته را كه درآن تطبيق واقع شده برگشت ميدهد .

‎مثال ـ دريافت موقعيت شروع وپايان موارد تطبيق .دراين مثال عبارت منظم براي يافتن كلماتي كه ‎با‎‎"S‎"‎ شروع ميشوند ، ميگردد .

--(go to editor for change code and run)

‎مثال ـ چاپ رشته اي كه به تابع ارسال شده

--(go to editor for change code and run)

‎مثال ـ جاپ قسمتي كه تطبيق رخ داده است.

--(go to editor for change code and run)


Previous >    <Next