КампутарыІнфармацыйныя тэхналогіі

PHP: рэгулярныя выразы, функцыя preg match all

PHP, як і належыць сучаснай мовы праграмавання, прапануе распрацоўніку набор функцый для выкарыстання рэгулярных выразаў. Можна шукаць ўваходжання радкоў у іншыя радкі па складаных крытэрам.

HTML, CSS, XML і іншыя фармалізаваныя файлы - класічныя задачы для прымянення функцыі preg match all. Не меншы эфект дае пошук адрасоў, прозвішчаў, нумароў тэлефонаў, e-mail і іншай інфармацыі ў нефармалізаваны тэкстах.

фармат функцыі

PHP прапаноўвае дзве функцыі пошуку: preg match і preg match all. Першая шукае першае ўваходжанне шаблону ў радку, другая - усе ўваходжанні. Часам выкарыстоўваюць тэрмін "супадзенне з шаблонам". У першым выпадку вынік функцыі - "радок супадае з шаблонам", у другім выпадку - "у радку знойдзены супадзеньні з шаблонам". Фармальна тэрмін "супадзенне" больш дакладна адлюстроўвае сутнасць, але натуральны кантэкст аперацыі звычайна - "пошук" інфармацыі. На практыцы запатрабавана і адно, і другое. Ніжэй разгледжаны фармат функцый.

Вынік функцыі - лік, колькасць супадзенняў. Усе знойдзеныя супадзення запісваюцца ў масіў - matches. У выпадку функцыі preg match all можна паказаць парадак сартавання масіва :

  • PREG_PATTERN_ORDER;
  • PREG_SET_ORDER.

Сартаванне па першым варыянце групуе вынікі пошуку па нумары назваў паведамленняў (значэнне па змаўчанні). У другім выпадку вынікі групуюцца па месцы iх знаходжання ў радку.

Сімвал - элемент шаблону

Важна памятаць, што шаблон аперуе знакамі. Праграмаванне ўжо даўно забылася, што такое тып дадзеных "сімвал". Сучасныя мовы не апускаюцца ніжэй паняцця "радок", але ў дачыненні да шаблону трэба разумець: тут маніпулююць сімваламі.

Пабудова шаблону - гэта, перш за ўсё, указанне патрэбнай паслядоўнасці знакаў. Калі гэта дакладна засвоіць, то памылак у шаблоне не будзе. Ва ўсякім разе, будзе значна менш.

  • а - гэта канкрэтны элемент шаблону - сімвал.
  • az - гэта элемент шаблону, таксама адзін сімвал, але толькі са значэннем ад a да z - уся лацінка ў ніжнім рэгістры.
  • 0-9 - гэта адна лічба, прычым любая, а вось 1-3 - толькі 1, 2 ці 3.

Рэгістр ў шаблоне важны. Першы і апошні сімвалы шаблону маюць вялікае значэнне. Можна паказаць, з чаго пачынаецца шаблон і чым заканчваецца.

шаблон функцыі

PHP preg match all выкарыстоўвае стандартны сінтаксіс рэгулярных выразаў. Квадратныя дужкі абазначаюць адзін з сімвалаў, які ў іх паказаны:

  • [Abc] толькі знакі a, b, c.
  • [^ ABC] усё, акрамя сімвалаў A, B, C.
  • \ W і \ W - тэкставы ці не тэкставы сімвал.
  • \ S і \ S - пробельные ці не прабельных знакаў.
  • \ D і \ D - лічба ці не лічба.

Сімвалы паўтарэння абазначаюцца фігурнымі дужкамі - {n, m} і ставяцца да папярэдняга сымбалю.

  • n пазначае паўтор "не менш";
  • m - паўтарэнне "не больш".

Сінтаксіс прадугледжвае мноства варыянтаў для стварэння шаблонаў, але лепш за ўсё пачынаць з азоў, гэта значыць з простых, уласнаручна напісаных, у якіх складаныя элементы і камбінацыі адсутнічаюць.

Прасцей кажучы, пералічыўшы рэальныя сімвалы, якія патрэбныя, паказаўшы іх патрэбныя колькасці і улічыўшы, што сімвал "^" адпавядае пачатку, а "$" - канца радка, можна ствараць прасценькія шаблоны. Аналізуючы рэальныя адладжаныя рэгулярныя выразы ад кваліфікаваных спецыялістаў, можна здабыць трывалыя веды для стварэння складаных ужыванняў preg match all. Арсенал PHP не абмежаваны толькі гэтымі двума функцыямі, але яны часцей за ўсё выкарыстоўваюцца.

простая практыка

Шаблон для цэлага ліку:

  • "/ [0-9] * /"

Таксама шаблон цэлага ліку, але спераду можа быць знак ( "+", "-"), і спераду / ззаду могуць быць лішнія прабелы:

  • / ^ [\ S | \ + | \ -] {0,1} [0-9] * /

аналагічна:

  • /^[\s|\+|\-]{0,1}[0-9]*(\.)[0-9]*/ - лік з кропкай.
  • /[0-9a-z_-]+@[0-9a-z_^\.]+\.[az]{2,3}/ - варыянт для распазнання e-mail.

Прымяненне ўласных шаблонаў для preg match all, прыклады іх у інтэрнэце, аналіз кода старонак сайтаў і іншыя крыніцы дазваляюць сфармаваць уласную бібліятэку шаблонаў.

Варыянтаў для пошуку інфармацыі можа быць мноства. У прыватнасці, прыведзеныя апошнія дзве канструкцыі можна змадэляваць інакш. У многіх выпадках перавага будзе мець той шаблон, які хутчэй і дакладней забяспечыць патрэбнае супадзенне. Прымяненне на PHP preg match all, як і аналагічных функцый на іншых мовах, патрабуе практыкі, увагі і папярэдняй праверкі правільнасці шаблонаў.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.delachieve.com. Theme powered by WordPress.