Thursday, March 29, 2007

Pattern

Хэрэглэгчийн оруулсан мэдээллийг Regexp-д pattern гэнэ. Pattern гэдэг нь тоо, vг (ар араасаа дараалсан vсэгнvvд ), эсвэл vсэг, тооны холимог байж болно.

Pattern жирийн хялбархан, эсвэл нvсэр том, боловсронгуй байж болно.


Pattern- г тодорхойлох эхний тєрєл тэмдэгтvvдийг ( vсэг, тоо, vг гэх мэт ) Literal гэнэ. Literal бол яг яаж бичигдсэн тэр хэлбэрээрээ утгаа хадгалдаг.

Иймээс literal -аар бид тодорхой хайлт явуулж уг pattern -д таарсан бvх vр дvнг хvлээж авдаг. Жишээ нь "бар" гэсэн literal pattern зєвхєн "бар" гэсэн vгийг олоход хэрэглэгдэх мэт.

Дaрaaгийн тєрєл болох Metacharacters буюу "хувьсагч тэмдэгтvvд" бол єєрийн жинхэнэ утгаасаа цааш олон утга агуулж болох тэмдэгтvvд.

Эхний Metacharacter бол єгvvлбэрийн эцэст ордог цэг. Цэг нь ( "." ) ямарваа хайлтаас ганцаараа байгаа тэмдэгтvvдийг олно. Жишээ нь хайлтын эцэст: a, b, c, d, x, y, z гэх мэт ганц vсгээс ( тэмдэгт ) бvтсэн бvх биетийг гаргаж ирнэ. Дараачийн гурван Metacharacter нь олон тохиолдол бvхий хариу гаргадаг. Эхний "n*" Metacharacter зєвхєн n тэмдэгтvvдийг олно. n, nn, nnn, nnnn гэх мэт. Дараачийн "n+" нь "n*" -тэй тєстэй гэхдээ багаар бодоход нэг хариу олохыг шаарддаг. Дараачийн

"n?" Metacharacter нь ганцхан n олохыг шаардана.

Хэрвээ хайлтын тэмдэгтvvдийн тоог мэдэж байвал тэр тоог нь муруй хаалтын тэмдэгт ( {} ) оруулаад болоо. Жишээ нь "n{3}" хайлтаар nnn гэсэн тэмдэгтvvд олдоно. Хэрвээ "n{3,}" гэвэл ( 3-ын ард байгаа таслалыг анхаар ) nnn, nnnn, nnnnn гэх мэтээр гурваас дээш тооны n гэсэн тэмдэгтvvдийг олно. Харин "n{3,5}" гэвэл гурваас тавын хоорондох n тэмдэгтvvдийг олно. nnn, nnnn, nnnnn гэх мэтээр. Эцэст нь ( ^ ), энэ тэмдэгтийн араас нь бичсэн vсгээр эхэлсэн бvх хоёр тэмдэгтээс бvтсэн string- г олоход хэрэглэнэ. Жишээ нь "^n" гэвэл na, nf, n5, np, nr, nx гэх мэт. Харин "n$" гэвэл n -ээр дууссан бvх хоёр тэмдэгтээс бvтсэн string олдоно. Жишээ нь an, en, 5n, jn гэх мэт.

Бас нэг тэмдэгт бол босоо зураас ( | ). Босоо зураасаар хоёр тусдаа тэмдэгт хайхад хэрэглэнэ. "n|m" гэсэн Metacharacter хайлтаар n ба m гэсэн бvх string олдоно.


Functions

РНР-д string дотроос ямар нэг тэмдэгтийг сонгоход хэрэглэдэг 2 functions байдаг. Эдгээрийг дурдвал
ereg(),
eregi().

eregi() нь string -ээс том жижиг ялгаагvй тэмдэгтээс бvтсэн тэмдэгт сонгодог байхад ereg() нь том жижиг тэмдэгтийн ялгааг хамаардаг. ereg() нь гол тєлєв нууц vг шалгах мэтийн нарийвчилсан vйлдэлд хэрэглэгдэнэ. Энгийн хайлт хийхэд eregi() нь голчлон хэрэглэгддэг

0 comments: