Үздіксіз өрнектер (regular expressions) туралы

5 Наурыз 2015

Үздіксіз өрнектер деген не?

Ол программистердің ең күшті құралдарының бірі.Оны көбінесе PHP скриптін жазғанда қолданады.

Сонымен, үздіксіз өрнектер дегеніміз белгілі бір ереже бойынша мәтіннің ішінен тармақшаны іздеп табуды сипаттайтын символдар (таңбалар) жиынтығы.|

Түсінікті болуы үшін мынандай келесі мысалды қарастырайық.


Енді бұған мынадай үздіксіз өрнек қолданайық.


Нәтижесінде, осындай шаблонға сәйкес келетін мынадай сөздерді таба аламыз: Қарға, қардың, қара, қарқ.

Ал егер "i" деген модификаторды алып тастасақ, яғни үздіксіз өрнекті былай етіп жазсақ, нәтиже өзгереді.


Бұл шаблон арқылы тек келесі - қардың, қара, қарқ -  үшеуі ғана табылады, себебі "i" -  регистр таңдамайтын мүмкіндік береді.Ал "Қарға"- сөзі жоғарғы регистрден басталады.  

Үздіксіз өрнектер дегеніміз - шаблондар тілі.

Енді үздіксіз өрнектердің жүмыс істеу принциптерін әзірше осы мысал аумағында түсіндірейін.

Оларды үш түрде жариялауға болады.


Бұл жерде шектейтін көлденең сызық "/" пен "i" модификаторды алып тастасақ, нәтижесінде тек төмендегідей таза шаблон қалады. 


Бұл шаблон қалай әрекет етеді:

1. Іздеп отырған тармақшалар тек "қар" деп басталуы керек.

2. Әр тармақша  пробелмен - бос символмен (таңбамен) "\s" аяқталуы керек.

3. "қар" тармақша бөлігінен кейін  ".*"- кез келген таңбалар болуы мүмкін. Ал "?" - олар болмауы да мүмкін дегенді білдіреді.

Үздіксіз өрнектер механизмін PHP да қалай қолданады.

PHP да үздіксіз өрнектермен жұмыс істейтін preg_match және preg_match_all деген екі функция  бар.

1. preg_match - мәтіннен тек бір сөз табу болмаса ондай сөздің бар-жоғын тексеру үшін қолданылады.

2. preg_match_all - мәтіннен белгілі бір ереже бойынша сөздер топтамасын табуға арналған.Табылған сөздер массив түрінде көрсетіледі.

Енді төмендегі суретте көрсетілген PHP кодын Notepad++ редакторына көшіріп алыңыз.

Ал енді осы PHP кодының нәтижесін көру үшін Денвер локальдық хостын іске қосамыз, яғни алдымен оның ярлыгы "Start Denwer" -ді түртіп жібереміз.Сосын екі қара DOS окнолары жүгіріп өтеді.Одан соң кез келген браузердің адрес теретін жолында localhost/testphp/regulartest.php сосын ENTER деп шақырамыз.

Скрипт орындалуы нәтижесінде төменде көрсетілгендей массив пайда болады.PHP ның var_export функциясы өзіне берілген айнымалының мәндерін көрсетеді.


Бұл мысал PHP ның үздіксіз өрнектер механизмінің тек бір мысалы ғана.Осы механизмді әбден ұғып үйреніп алған соң тармақтарды , мәтіндерді, сайттарды және тағы басқаларын парсинг жасауға болатын өте күшті шаблон ойлап табуыңызға болады.

Енді келесіде осы тақырып төңірегінде кеңірек тоқталатын боламын, себебі айтылатын ойлар өте көп.

Мысалы, email ді қалай парсинг етуге болады және тағысын тағылар.

(Жалғасы бар...)

Егер мақала көңіліңізден шықса, онда онымен төмендегі түйме арқылы достарыңызбен бөлісіңіз

Пікірлер