Pattern


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

Pattern жирийн хялбархан, эсвэл нvсэр том, боловсронгуй байж болно.
       Хойшид pattern бичихдээ бусад vгнээс ялгахын тулд хашилтын тэмдгийн дунд ( " " ) бичнэ. Жишээ --> "pattern".

        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 олдоно.

Regexp-д хэрэглэдэг тусгай тэмдэгтvvд
  тэмдэгтvvд   хайлт
  .   Бvх тэмдэгт
  ^n   n-ээр эхэлсэн
  n$   n-ээр тєгссєн
  n+   n агуулсан (багаар бодоход нэг)
  n?   0 эсвэл ганцхан n агуулсан
  \n   шинэ мєр
  \t   зай авах
  \   ардаа байгаа тэмдэгийн утгыг    єєрчлєх
  (nm)   n m хоёр хамтдаа
  (n|m)   n эсвэл m агуулсан
  n{2}   nn
  n{1,}   n, nn, nnn, nnnn гэх мэт
  n{1,3}   n, nn, nnn
  [a-z]   бvх жижиг тэмдэгтvvд
  [A-Z]   бvх том тэмдэгтvvд
  [0-9]   бvх тооны тэмдэгтvvд

Functions

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

ereg()
eregi()


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