..


Спонсоред Линкс

Регуларни изрази ПЦРЕ функције (и разлике са ПОСИКС функција)

Чланак који је написао Макс Боси
Страна 1 од 4

Имали смо већ поменути пре неколико дана кроз странице нашег блога, али данас желим да истражи тему да верујем да ће бити од интереса за хиљаде програмера - попут мене - свакодневну употребу ПХП-у да развијају своје веб апликације.

Почевши од верзије 5.3 ПХП-а, у ствари, програмери који желе да искористе потенцијал регуларних израза неће бити у могућности да користе ПОСИКС функција (да схвате ерег () и породице), али мора, нужно, користите ПЦРЕ функција (Перл компатибилан Редовно израза), на пример, прег_матцх () .

ПЦРЕ функције уграђене у ПХП-вам дозвољавају да користите синтаксу Перл регуларни изрази типичне (тачније, садашњи имплементација пружа подршку синтакса Перл 5.005), што је незнатно разликује од ПОСИКС функција. За више информација о синтакси ПЦРЕ је могуће да се консултује упутство доступни на званичном сајту ПЦРЕ.орг.

Поређења: прег_матцх ()

Ако желите да направите поређење између стринг и образац (модел написан у облику регуларних израза) Потребно је да користите прег_матцх () која, у ствари, замењује ерег () и ереги ().

Користећи прег_матцх () је, заједно, прилично једноставна: пређете функцију образац и низ да проверите. Ако образац није задовољан, функција враћа 1 ако је 0 (или ФАЛСЕ ако је грешка).

У ствари оду са ерег () није компликована ствар. Биће вам потребна одређена мали трик у формулисању модела.

Ево једног примера:

 



 <Пхп







 ако (прег_матцх ('/ мрвебмастер / и', 'Живела МрВебмастер!')) {



  



 ецхо "Пронађено";







 Елсе {}



  



 ецхо "није пронађен";







 }







 >?

 
То је исти:
 



 <Пхп







 ако (ереги ('мрвебмастер', 'Живела МрВебмастер!')) {



  



 ецхо "Пронађено";







 Елсе {}



  



 ецхо "није пронађен";







 }







 >?

 

У нашем једноставан пример коришћења прег_матцх () коришћен стринг као образац

 



 / Мрвебмастер / с

 
Видимо синтаксу:
  • / ... / - Ограничавају почетак и крај израза;
  • мрвебмастер - је једноставан стринг који желите да проверите присуство у тексту прошао као други аргумент;
  • И - "Ја", након затварања раздвајач указује на то да претрага не би требало да буде велика и мала слова (баш као што је користећи ереги ()). Технички, то "ја" је модификатора, у овој страници комплетну листу модификатори дозвољено у синтаксу ПЦРЕ.

Разлика са ерег ()

Као што можете видети разлика са ерег () нису много, хајде да их сажети кратко:

  • употреба раздвајање / ... / (заправо можете да употребите остале знакове као граничник, али коса црта је обично избор);
  • независан од величине слова верзија (ереги ()) се замењује употреба "ја", након затварања раздвајање;
  • присуство / карактера у образац захтева (ако сте навикли да смањи раздвајати наводницима) бекство (\ /) како не треба мешати са раздвајање;
  • Постоје неке маргиналне разлике у управљању АСЦИИ знакова (ПОСИКС функција, за разлику од ПЦРЕ прихватају нумеричке АСЦИИ знакова, нпр: број 10 одговара нове линије и царриаге ретурн 13; обрнуто са ПЦРЕ функције. 10 представља само број десет).
  • функција ерег () признаје само три параметра (образац, текст треба проверити и, опционо, низ да одржи резултата) и прег_матцх () признаје пет (прва два, већ смо видели, су потребне, остала тројица су опциони );

На основу горе (и разлике које су поменути) се и даље сматрају (делимично) звук теоријских објашњења о синтакси регуларних израза се може наћи на овој страници текста "Регуларни изрази у ПХП-у", посвећена старим ПОСИКС функција .

У истој категорији ...
Е-учење
Линук (курс) Линук (курс)
Комплетан водич за опен-соурце система. Полазећи од 49 €.
МиСКЛ (курс) МиСКЛ (курс)
Управљање опен соурце базу података. Полазећи од 39 €.
ПХП (курс) ПХП (курс)
Цео курс за креирање динамичких веб сајтова. Полазећи од 49 €.
Спонсоред Линкс