آموزش عبارات منظم در PHP

3 سال پیش
آموزش عبارات منظم در PHP

آموزش عبارات منظم در PHP

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش عبارات منظم در PHP خواهیم پرداخت.

عبارات منظم چیزی نیست جز توالی یا الگوی شخصیت ها. آنها اساس عملکرد مطابقت الگو را فراهم می کنند.

با استفاده از عبارت منظم می توانید یک رشته خاص را در داخل یک رشته دیگر جستجو کنید ، می توانید یک رشته را جایگزین یک رشته دیگر کنید و می توانید یک رشته را به قسمتهای مختلف تقسیم کنید.

PHP توابع مختص دو مجموعه از عملکردهای بیان منظم را ارائه می دهد که هر کدام مربوط به نوع خاصی از بیان منظم است. بر اساس راحتی خود می توانید از هر یک از آنها استفاده کنید.

  • عبارات منظم POSIX
  • عبارات منظم به سبک PERL

عبارات منظم POSIX

ساختار یک عبارت منظم POSIX با ساختار یک عبارت معمولی بی شباهت نیست: عناصر مختلف (عملگرها) برای تشکیل عبارات پیچیده تر ترکیب می شوند.

ساده ترین عبارت منظم عبارتی است که با یک کاراکتر واحد مانند g در داخل رشته هایی مانند g ، haggle یا bag مطابقت داشته باشد.

بیایید توضیحاتی درباره چند مفهوم مورد استفاده در بیان منظم POSIX ارائه دهیم. پس از آن ما توابع مربوط به بیان منظم را به شما معرفی خواهیم کرد.

براکت ها

براکت ها ([]) وقتی در متن اصطلاحات منظم استفاده می شوند معنای خاصی دارند. از آنها برای یافتن طیف وسیعی از نویسه ها استفاده می شود.

 توضیحات
۱ [۰-۹]

با هر رقم اعشاری از ۰ تا ۹ مطابقت دارد.

۲ [a-z]

با هر کاراکتر از حروف کوچک از a تا کوچک z مطابقت دارد.

۳ [A-Z]

با هر کاراکتر از حروف بزرگ A تا بزرگ Z مطابقت دارد.

۴ [a-Z]

با هر کاراکتر از حروف کوچک تا بزرگ Z مطابقت دارد.

 

دامنه های نشان داده شده در بالا عمومی هستند. همچنین می توانید از دامنه [۰-۳] برای مطابقت با هر رقم اعشاری از ۰ تا ۳ یا دامنه [b-v] برای مطابقت با هر حرف کوچک از b تا v استفاده کنید.

کمیت سنج ها

فرکانس یا موقعیت توالی های کاراکتر براکت و تک کاراکترها را می توان با یک کاراکتر خاص نشان داد. هر شخصیت خاص دارای یک معنی خاص است. + ، * ،؟ ، {int. range} ، و $ flags همه دنباله کاراکتر را دنبال می کنند.

 

 توضیحات
۱ p+

با هر رشته ای که حداقل یک p داشته باشد مطابقت دارد.

۲ p*

با هر رشته حاوی صفر یا بیشتر p مطابقت دارد.

۳ p?

با هر رشته ای که شامل صفر یا یک p باشد مطابقت دارد.

۴ p{N}

با هر رشته ای که توالی N p را دارد مطابقت دارد

۵ p{2,3}

با هر رشته ای حاوی توالی دو یا سه p مطابقت دارد.

۶ p{2, }

با هر رشته ای حاوی توالی حداقل دو p مطابقت دارد.

۷ p$

هر رشته را با p در انتهای آن مطابقت می دهد.

۸ ^p

هر رشته را با p در ابتدای آن مطابقت می دهد.

 

مثال ها

مثالهای زیر مفاهیم شما را در مورد مطابقت شخصیت ها پاک می کند.

۱ [^a-zA-Z]

با هر رشته ای که شامل هیچ یک از کاراکترها از a تا z و A تا Z نباشد مطابقت دارد.

۲ p.p

با هر رشته حاوی p و به دنبال آن هر کاراکتر مطابقت دارد و به نوبه خود p دیگری دنبال می شود.

۳ ^.{۲}$

با هر رشته ای که دقیقاً دارای دو کاراکتر باشد مطابقت دارد.

۴ <b>(.*)</b>

با هر رشته ای که در <b> و </b> محصور شده مطابقت دارد.

۵ p(hp)*

این با هر رشته ای حاوی p و به دنبال آن صفر یا بیشتر از توالی php مطابقت دارد.

 

محدوده های کاراکتر از پیش تعریف شده

برای راحتی برنامه نویسی شما، چندین محدوده کاراکتر از پیش تعریف شده وجود دارد که به آنها کلاسهای کاراکتر نیز می گویند. کلاس های کاراکتر طیف وسیعی از کاراکتر ها را مشخص می کند ، به عنوان مثال ، حروف الفبا یا یک مجموعه صحیح –

توضیحات
۱ [[:alpha:]]

با هر رشته ای که دارای حروف الفبا aA تا zZ باشد مطابقت دارد.

۲ [[:digit:]]

با هر رشته ای که شامل ارقام عددی ۰ تا ۹ است مطابقت دارد.

۳ [[:alnum:]]

این رشته با هر رشته ای حاوی حروف الفبا عددی aA تا zZ و ۰ تا ۹ مطابقت دارد.

۴ [[:space:]]

با هر رشته ای که دارای فاصله است مطابقت دارد.

 

 

توابع Regexp POSIX PHP

PHP در حال حاضر هفت عملکرد برای جستجوی رشته ها با استفاده از عبارات منظم به سبک POSIX ارائه می دهد –

۱ ()eregتابع ereg یک رشته مشخص شده توسط رشته را برای رشته مشخص شده توسط الگو جستجو می کند ، در صورت یافتن الگو درست می شود و در غیر این صورت false است.
۲ ()ereg_replaceتابع () ereg_replace رشته ای را که توسط الگو مشخص شده جستجو می کند و در صورت یافتن ، الگو را جایگزین می کند.
۳ ()eregiتابع ()eregi  در سراسر رشته ای که با الگو مشخص شده است رشته ای را که توسط رشته مشخص شده است جستجو می کند. جستجو به حروف کوچک و بزرگ حساس نیست.
۴ ()eregi_replaceتابع () eregi_replace دقیقاً مانند () ereg_replace عمل می کند ، با این تفاوت که جستجوی الگو در رشته حساس به حروف کوچک و بزرگ نیست.
۵ ()splitتابع ()split  یک رشته را به عناصر مختلف تقسیم می کند ، مرزهای هر عنصر بر اساس وقوع الگو در رشته است.
۶ ()splitiتابع ()split دقیقاً به همان روشی که ()splitخواهر و برادر  انجام می شود، عمل می کند، با این تفاوت که حساس به حروف کوچک نیست.
۷ ()sql_regcase

تابع ()sql_regcase را می توان به عنوان یک تابع سودمند در نظر گرفت ، که هر نویسه را در رشته پارامتر ورودی به یک عبارت براکت دار حاوی دو ویژگی تبدیل می کند.

 

عبارات منظم به سبک PERL

عبارات منظم به سبک Perl مشابه نمونه های POSIX آنهاست. از نحو POSIX می توان تقریباً به جای توابع بیان منظم به سبک Perl استفاده کرد. در واقع ، شما می توانید از هر یک از مقادیر اندازه گیری که در قسمت قبلی POSIX معرفی شده استفاده کنید.

بیایید توضیحاتی درباره چند مفهوم مورد استفاده در عبارات منظم PERL ارائه دهیم. پس از آن ما با توابع مرتبط با بیان منظم به شما معرفی خواهیم کرد.

کاراکتر های متا

یک کاراکتر متا به سادگی یک کاراکتر الفبایی است که قبل از آن یک عکس برگشت وجود دارد که برای ایجاد معنایی خاص به ترکیب عمل می کند.

به عنوان مثال، می توانید مبالغ هنگفتی را با استفاده از کاراکتر متا “\ d” جستجو کنید:

در زیر لیستی از نویسه های متا وجود دارد که می توانند در عبارات منظم به سبک PERL استفاده شوند.

Character		Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified

 

مودیفایرهای عبارات منظم در PHP 

مودیفایرها یا تعدیل کننده های مختلفی در دسترس هستند که می توانند کار شما را با regexps بسیار آسان کنند ، مانند حساسیت حروف کوچک ، جستجو در چندین خط و غیره

Modifier	Description
i 	Makes the match case insensitive
m 	Specifies that if the string has newline or carriage
    return characters, the ^ and $ operators will now
    match against a newline boundary, instead of a
    string boundary
o 	Evaluates the expression only once
s 	Allows use of . to match a newline character
x 	Allows you to use white space in the expression for clarity
g 	Globally finds all matches
cg 	Allows a search to continue even after a global match fails

 

توابع سازگار PHP’s Regexp PERL

PHP توابع زیر را برای جستجوی رشته ها با استفاده از عبارات منظم سازگار با Perl ارائه می دهد –

Sr.No توابع
۱ ()preg_matchتابع () preg_match رشته را برای الگو جستجو می کند ، در صورت وجود الگو ، true را برمی گرداند و در غیر این صورت false است.
۲ ()preg_match_allتابع ()preg_match_all با همه موارد الگوی رشته مطابقت دارد.
۳ ()preg_replaceتابع () preg_replace دقیقاً مانند ()ereg_replace  عمل می کند ، با این تفاوت که از عبارات منظم می توان در الگو و پارامترهای ورودی جایگزین استفاده کرد.
۴ ()preg_splitتابع () preg_split دقیقاً مانند ()split  عمل می کند ، با این تفاوت که عبارات منظم به عنوان پارامترهای ورودی الگو پذیرفته می شوند.
۵ ()preg_grepتابع preg_grep تمام عناصر input_array را جستجو می کند ، همه عناصر مطابق با الگوی regexp را برمی گرداند.
۶ ()preg_ quote

کاراکتر های عبارات منظم را نقل می کند

 

منبع.

 

لیست جلسات قبل آموزش PHP

  1. آموزش PHP
  2. معرفی PHP
  3. آموزش تنظیمات محیط PHP
  4. آموزش نحو PHP
  5. آموزش انواع متغیر در PHP
  6. آموزش انواع ثابت ها در PHP
  7. آموزش انواع عملگرها در PHP
  8. آموزش تصمیم گیری در PHP
  9. آموزش انواع حلقه در PHP
  10. آموزش آرایه ها در PHP
  11. آموزش رشته ها در PHP
  12. آموزش مفاهیم وب در PHP
  13. آموزش روش های  GET & POST در PHP
  14. آموزش Inclusion فایل در PHP
  15. آموزش پرونده ها و I / O در PHP
  16. آموزش توابع در PHP
  17. آموزش کوکی ها در PHP
  18. آموزش جلسات در PHP
  19. آموزش ارسال ایمیل با استفاده از PHP
  20. آموزش بارگذاری پرونده در PHP
  21. آموزش استاندارد کدگذاری در PHP
  22. آموزش متغیرهای از پیش تعریف شده در PHP
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه