რეგულარული გამონათქვამები php სიმბოლოების ჩანაცვლება. PHP რეგულარული გამონათქვამები. გამორიცხული პერსონაჟების კლასები

PHP, როგორც თანამედროვე პროგრამირების ენას შეეფერება, დეველოპერს სთავაზობს ფუნქციების ერთობლიობას რეგულარული გამონათქვამების გამოსაყენებლად. თქვენ შეგიძლიათ მოძებნოთ სტრიქონების შემთხვევები სხვა სტრიქონებში რთული კრიტერიუმების გამოყენებით.

  • PREG_PATTERN_ORDER;
  • PREG_SET_ORDER.

დაალაგეთ 1-ლი ვარიანტის მიხედვით ძიების შედეგების ჯგუფები რეგულარული გამოსახულებების ნომრის მიხედვით (ნაგულისხმევი). მეორე შემთხვევაში, შედეგები დაჯგუფებულია რიგში მათი მდებარეობის მიხედვით.

სიმბოლო - შაბლონის ელემენტი

მნიშვნელოვანია გვახსოვდეს, რომ შაბლონი მოქმედებს სიმბოლოებზე. პროგრამირებამ დიდი ხანია დაივიწყა, თუ რა არის "სიმბოლო" მონაცემთა ტიპი. თანამედროვე ენები არ ჩამოდიან "სტრიქონის" კონცეფციაზე, მაგრამ შაბლონთან დაკავშირებით, თქვენ უნდა გესმოდეთ: აქ სიმბოლოებით მანიპულირება ხდება.

შაბლონის აგება, პირველ რიგში, სიმბოლოების საჭირო თანმიმდევრობის დაზუსტებაა. თუ ეს ნათლად გესმით, მაშინ შაბლონში შეცდომები არ იქნება. ნებისმიერ შემთხვევაში, ეს ბევრად ნაკლები იქნება.

  • a არის თარგის სპეციფიკური ელემენტი - სიმბოლო.
  • a-z არის შაბლონის ელემენტი, ასევე ერთი სიმბოლო, მაგრამ მხოლოდ a-დან z-მდე მნიშვნელობით - ყველა ლათინური მცირე ასოებით.
  • 0-9 არის ერთი რიცხვი, ნებისმიერი რიცხვი, მაგრამ 1-3 არის მხოლოდ 1, 2 ან 3.

საქმე შაბლონში მნიშვნელოვანია. ნიმუშის პირველი და ბოლო სიმბოლოები მნიშვნელოვანია. თქვენ შეგიძლიათ მიუთითოთ სად იწყება და მთავრდება შაბლონი.

ფუნქციის შაბლონი

PHP preg match ყველა იყენებს სტანდარტულ რეგულარული გამოხატვის სინტაქსს. მიუთითეთ მათში მითითებული ერთ-ერთი სიმბოლო:

  • მხოლოდ სიმბოლოები a, b, c.
  • [^ABC] ყველაფერი A, B, C სიმბოლოების გარდა.
  • \w და \W - ტექსტური ან არატექსტური სიმბოლო.
  • \s და \S - უფსკრული ან უფსკრული სიმბოლო.
  • \d და \D - ციფრი ან არაციფრი.

განმეორებითი სიმბოლოები მითითებულია ხვეული ბრეკეტებით - (n,m) და ეხება წინა სიმბოლოს.

  • n აღნიშნავს „არანაკლებ“-ის გამეორებას;
  • მ - "არაფერის" გამეორება.

სინტაქსი მრავალ ვარიანტს იძლევა შაბლონების შესაქმნელად, მაგრამ უმჯობესია დაიწყოთ საფუძვლებით, ანუ მარტივით დაწერილი საკუთარი ხელით, რომელშიც რთული ელემენტები და კომბინაციები არ არის.

მარტივად რომ ვთქვათ, საჭირო რეალური სიმბოლოების ჩამოთვლით, მათი საჭირო რაოდენობის მითითებით და იმის გათვალისწინებით, რომ სიმბოლო „^“ შეესაბამება დასაწყისს, ხოლო „$“ სტრიქონის ბოლოს, შეგიძლიათ შექმნათ მარტივი შაბლონები. კვალიფიციური ექსპერტების რეალური, კარგად გამართული რეგულარული გამონათქვამების ანალიზით, შეგიძლიათ მიიღოთ მყარი ცოდნა, რომ შექმნათ preg match all-ის რთული აპლიკაციები. PHP-ის არსენალი არ შემოიფარგლება მხოლოდ ამ ორი ფუნქციით, მაგრამ ისინი ყველაზე ხშირად გამოიყენება.

მარტივი პრაქტიკა

მთელი ნიმუში:

  • "/*/"

ასევე მთელი რიცხვის ნიმუში, მაგრამ შეიძლება იყოს ნიშანი წინ ("+", "-") და შეიძლება იყოს დამატებითი სივრცეები წინა/უკანა მხარეს:

  • /^[\s|\+|\-](0,1)*/

ანალოგიურად:

  • /^[\s|\+|\-](0,1)*(\.)*/ - რიცხვი წერტილით.
  • /+@+\.(2,3)/ - ელ.ფოსტის ამოცნობის ვარიანტი.

თქვენი საკუთარი შაბლონების გამოყენება preg match-ისთვის, მათი მაგალითები ინტერნეტში, ვებსაიტების გვერდების კოდის და სხვა წყაროების ანალიზი საშუალებას გაძლევთ შექმნათ შაბლონების საკუთარი ბიბლიოთეკა.

ინფორმაციის მოპოვების მრავალი ვარიანტი არსებობს. კერძოდ, ზემოთ მოცემული ბოლო ორი კონსტრუქცია შეიძლება განსხვავებულად იყოს მოდელირებული. ხშირ შემთხვევაში, უპირატესობა მიენიჭება შაბლონს, რომელიც უზრუნველყოფს სასურველ შესატყვისს უფრო სწრაფად და ზუსტად. PHP-ში preg match all-ის გამოყენება, ისევე როგორც სხვა ენებში მსგავსი ფუნქციები, მოითხოვს პრაქტიკას, ყურადღებას და შაბლონების სისწორის წინასწარ შემოწმებას.

ეს სტატია გთავაზობთ php regexp მაგალითების არჩევანს. რეგულარული გამოხატვის მაგალითების ძალიან ლამაზი და სასარგებლო კოლექცია. ყველა რეგულარული გამოხატვის მაგალითი მისაღებია PHP-სთვის. ისიამოვნეთ თქვენი ჯანმრთელობისთვის!

დომენის დადასტურების მაგალითი

ეს php ფრაგმენტი ამოწმებს არის თუ არა სტრიქონი სწორი დომენის სახელი.

?:.*)+):?(d+)?/?/i", $url)) (echo "თქვენი url კარგია."; ) else (echo "არასწორი url.";)

ტექსტში სიტყვის ხაზგასმის მაგალითი

ძალიან სასარგებლო რეგულარული გამოთქმა ტექსტში სასურველი სიტყვის საძიებლად და ხაზგასასმელად. კოდი განსაკუთრებით სასარგებლოა ძიების შედეგების შექმნისას.

$text = "სამაგალითო წინადადება KomunitasWeb-დან, regex პოპულარული გახდა ვებ პროგრამირებაში. ახლა ჩვენ ვსწავლობთ რეგექსს. ვიკიპედიის მიხედვით, რეგულარული გამონათქვამები (შემოკლებით, როგორც regex ან regexp, მრავლობითი ფორმებით regexes, regexps ან regexen) იწერება ფორმალურად. ენა, რომლის ინტერპრეტაციაც შესაძლებელია რეგულარული გამოხატვის პროცესორის მიერ“; $text = preg_replace("/b(regex)b/i", " 1", $text); echo $text;

ძიების შედეგების ხაზგასმის განხორციელების მაგალითიWordPress

გახსენით search.php ფაილი და იპოვეთ ფუნქცია the_title(). შეცვალეთ იგი შემდეგი ხაზით:

ექო $title;

ახლა, ჩანაცვლებულ ხაზამდე, ჩადეთ ეს კოდი:

\0", $title); ?>

შეინახეთ თქვენი search.php ფაილი და გახსენით style.css. დაამატეთ მას შემდეგი ხაზი:

Strong.search-ნაწყვეტი (ფონი: ყვითელი; )

სურათების მიღების მაგალითიHTML regexp მეთოდი

PHP კოდის ეს ნაწილი რეგულარული გამონათქვამების გამოყენებით ეძებს ყველა სურათს და მათ url-ს.

$images = მასივი(); preg_match_all("/(img|src)=("|")[^"">]+/i", $data, $media); unset ($data); $data=preg_replace("/(img|src)("|"|="|=")(.*)/i","$3",$media); foreach($data როგორც $url) ($info = pathinfo($url); if (isset($info["გაფართოება"])) (if (($info["გაფართოება"] == "jpg") || ($info["გაფართოება"] == "jpeg") || ($info["გაფართოება"] == "gif") || ($info["გაფართოება"] == "png")) array_push($ სურათები, $url); ))

დუბლიკატი სიტყვების წაშლა (გადაწყვეტილების გარეშე)

ხშირად არის სიტყვები, რომლებიც მეორდება? მაშინ ეს რეგულარული გამოხატვის მაგალითი გამოგადგებათ.

$text = preg_replace("/s(w+s)1/i", "$1", $ტექსტი);

დუბლიკატი ქულების ამოღება

იგივე, მხოლოდ განმეორებითი პუნქტებით.

$text = preg_replace("/.+/i", ".", $text);

XML/HTML ტეგის შესატყვისი

ეს მარტივი ფუნქცია იღებს ორ არგუმენტს: ტეგი (რომლის შედარებაც გსურთ), xml ან html კოდი.

ფუნქცია get_tag($tag, $xml) ($tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?).")", $xml, $matches, PREG_PATTERN_ORDER); $ მატჩების დაბრუნება; )

მოძებნეთ XHTML/XML ტეგები კონკრეტული ატრიბუტების მნიშვნელობებით

ეს მაგალითი წინა ფუნქციის მსგავსია, მხოლოდ თქვენ შეგიძლიათ მნიშვნელოვნად გააფართოვოთ ძებნა, მაგალითად, პოვნა

.

ფუნქცია get_tag($attr, $value, $xml, $tag=null) ( if(is_null($tag)) $tag = "\w+"; სხვა $tag = preg_quote($tag); $attr = preg_quote($ attr); $value = preg_quote ($value); $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*". "(["\"])$value\\2[^>]*>(.*?)<\/\\1>/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); დააბრუნეთ $matches;)

თექვსმეტობითი ფერის მნიშვნელობების პოვნა

რეგულარული გამოხატვის შესანიშნავი მაგალითი, რომელიც ემთხვევა თექვსმეტობითი ფერის მნიშვნელობებს მოცემულ სტრიქონებში. Ეს რისთვისაა? იქნებ გსურთ დაწეროთ CSS კოდის შეკუმშვის სერვისი, ან რაიმე მსგავსი.

$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) (echo "მაგალითი 6 წარმატებული."; )

ძებნის მაგალითისათაური მოცემულ გვერდზე

PHP კოდის ეს საინტერესო მაგალითი regexp-ით პოულობს და აბრუნებს ტექსტს ტეგებს შორის და.

Feof($fp))($გვერდი .= fgets($fp, 4096); ) $titre = eregi(" (.*)",$page,$regs); echo $regs; fclose($fp);

Apache ჟურნალის ანალიზი

საიტების უმეტესობა მუშაობს ცნობილ Apache სერვერებზე. თუ თქვენი საიტიც მასზე მუშაობს, მაშინ შეგიძლიათ სერვერის ჟურნალის გაანალიზება php regexp-ის გამოყენებით.

//ლოგები: Apache ვებ სერვერი //წარმატებული ჰიტები მხოლოდ HTML ფაილებზე. სასარგებლოა გვერდის ნახვების რაოდენობის დასათვლელად. "^((?#კლიენტის IP ან დომენის სახელი)S+)s+((?#ძირითადი ავთენტიფიკაცია)S+s+S+)s+[((?#თარიღი და დრო)[^]]+)]s+"(?: GET|POST|HEAD) ((?#ფაილი)/[^ ?]+?.html?)??((?#პარამეტრები)[^ ?]+)? HTTP/+"s+(?#სტატუსის კოდი)200s+((?#ბაიტი გადაცემული)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#მომხმარებლის აგენტი )[^"]*)"$" //Logs: Apache ვებ სერვერი //404 შეცდომები მხოლოდ "^((?#კლიენტის IP ან დომენის სახელი)S+)s+((?#ძირითადი ავთენტიფიკაცია)S+s+S+) s+[((?#თარიღი და დრო)[^]]+)]s+"(?:GET|POST|HEAD) ((?#ფაილი)[^ ?]+)??((?#პარამეტრები)[ ^?"]+)? HTTP/+"s+(?#სტატუსის კოდი)404s+((?#ბაიტი გადაცემული)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#მომხმარებლის აგენტი )[^"]*)"$"

პაროლის სირთულის შემოწმების მაგალითი

რეგულარული გამოხატვის შესანიშნავი მაგალითი, რომელიც ამოწმებს პაროლის სირთულის დონეს. პაროლი უნდა შედგებოდეს 6 სიმბოლოსგან და შეიცავდეს მინიმუმ ერთ დიდ, მცირე ასოს და რიცხვს.

"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"

ტექსტური სმაილიკების ჩანაცვლება გრაფიკული სმაილიკებით

ეს მაგალითი კოდი შეცვლის ტექსტურ სმაილიკს თქვენს გრაფიკულში. საინტერესო და სასარგებლო PHP ნაწყვეტი.

$texte="სმაილით ტექსტი:-)"; echo str_replace(":-)"," ",$texte);

რეგულარული გამოხატვის მაგალითი გამოსახულების მისაღებადhtml კოდი

აღსანიშნავია, რომ ეს php კოდი გამოიყენება wordpress-ში სურათების მოსაძებნად და დასამუშავებლად.

პოსტ_კონტენტი; $szSearchPattern = "~ ]* />~"; // გაუშვით preg_match_all, რომ აიღოთ ყველა სურათი და შეინახოთ შედეგები $aPics preg_match_all ($szSearchPattern, $szPostContent, $aPics); // შეამოწმეთ, გვაქვს თუ არა მინიმუმ 1 სურათი $iNumberOfPics = count($aPics); if ($iNumberOfPics > 0) ( // აქ შეგიძლიათ დაამუშავოთ თქვენი სურათები // ამ მაგალითში ისინი უბრალოდ ნაჩვენები იქნება მონიტორზე ($i=0; $i)< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

იმედი მაქვს, რომ თქვენთვის სასარგებლო აღმოჩნდა php regexp მაგალითების ეს კოლექცია. თუ არის საინტერესო დამატებები ან რეგულარული გამონათქვამების მაგალითები (php), დაწერეთ კომენტარებში.

ფუნქციის აღწერა:

preg_replace ფუნქცია ეძებს რეგულარული გამონათქვამის ( ნიმუში ) შესატყვისებს სტრიქონში ( თემა ) მონაცემებს და ანაცვლებს მათ ჩანაცვლებაში ნაპოვნი მონაცემებით .

არგუმენტი

აღწერა

ნიმუში

საჭირო არგუმენტი.რეგულარული გამოხატულება (ძიების ნიმუში)

სტრიქონი, მასივი

ჩანაცვლება

საჭირო არგუმენტი.სტრიქონი ან მასივი, რომელიც შეიცავს მონაცემებს, რომლებიც გამოიყენება მონაცემთა ჩანაცვლებისთვის საგანი

თქვენ ასევე შეგიძლიათ გამოიყენოთ ფორმის \$(1) კონსტრუქცია ბმულებისთვის, რომელიც უდრის \$1-ს; ეს კონსტრუქცია გამოიყენება იმ შემთხვევაში, თუ ბმულს მოჰყვება რიცხვი (\$(1)1).

სტრიქონი, მასივი
საგანი საჭირო არგუმენტი.სტრიქონი ან მასივი, რომელიც შეიცავს მონაცემებს, რომლებიც შეიცვლება. სტრიქონი, მასივი
ზღვარი

არჩევითი არგუმენტი.ჩანაცვლების მაქსიმალური რაოდენობა. ნაგულისხმევი არის -1 (შეუზღუდავი)

ინტ
ითვლიან

არჩევითი არგუმენტი.ცვლადი, რომელიც შეიცავს შესრულებული ჩანაცვლების რაოდენობას.

ინტ

preg_replace() ფუნქცია შეიძლება გამოყენებულ იქნას /e მოდიფიკატორთან ერთად. როდესაც ეს მოდიფიკატორი არსებობს, ჩანაცვლების პარამეტრი ინტერპრეტირებულია, როგორც PHP კოდი და შემდეგ გამოიყენება ჩანაცვლებისთვის.

რეგულარული გამონათქვამები

ცალკე უნდა ვისაუბროთ რეგულარულ გამონათქვამებზე, რომელთა გაგების გარეშეც საკმაოდ რთულია (თუ არა შეუძლებელი) ფუნქციის მუშაობის გაგება. preg_replace().

რეგულარული გამონათქვამების საკმაოდ კარგი აღწერა მოცემულია wikipedia.org-ზე, ასევე აღწერილია რეგულარული გამონათქვამების გამოყენების ძირითადი პუნქტები.

მაგალითები:

მაგალითი 1:

ამ მაგალითში ჩვენ ვცვლით ფრჩხილებში მოთავსებულ ყველა რიცხვს ვარსკვლავით.

მაგალითი 2:

ამ მაგალითში, ჩვენ ვცვლით სტრიქონს, რომელიც შეესაბამება მთელ შაბლონს, პირველი ქვეპატერნის შესაბამისი მონაცემებით \$1 მითითებით. სხვა სიტყვებით რომ ვთქვათ, "აქვს 3 ვაშლი", რომელიც შეესაბამება "/(\w+) (\d+) (\w+)/" შეიცვლება "have"-ის შესაბამისი (\w+).

მაგალითი 3:

ეს მაგალითი გვიჩვენებს, თუ რა მოხდება, თუ იყენებთ მასივებს ნიმუშად და ჩანაცვლებად.

მაგალითი 4:

ეს მაგალითი გვიჩვენებს, თუ რა მოხდება, თუ იყენებთ მასივებს, როგორც შაბლონს, ჩანაცვლებას და საგანს.

მაგალითი 5:

ეს მაგალითი გვიჩვენებს /e მოდიფიკატორის გამოყენებას, ანუ როდესაც ჩანაცვლება ინტერპრეტირებულია როგორც php კოდი. ქვემოთ მოცემულია სიმბოლოების კონვერტაცია ქვედადან ზევით.

მაგალითი 6:

ეს მაგალითი გვიჩვენებს count არგუმენტის გამოყენებას. აქ შედეგი იქნება 2-ის ტოლი, ამიტომ იყო ორი ჩანაცვლება.

შერეული preg_match(სტრიქონის ნიმუში, სტრიქონის თემა [, მასივი და შეესაბამება [, int flags [, int offset]]])

ეძებს მოცემულ ტექსტის საგანს, რათა შეესაბამებოდეს ნიმუშის ნიმუშს

თუ დამატებითი თანხვედრის პარამეტრი მითითებულია, ის შეივსება ძიების შედეგებით. $matches ელემენტი შეიცავს სტრიქონის ნაწილს, რომელიც ემთხვევა მთელ შაბლონს, $matches შეიცავს სტრიქონის იმ ნაწილს, რომელიც ემთხვევა პირველ ქვეპატერნს და ა.შ.

დროშებს შეუძლიათ მიიღონ შემდეგი მნიშვნელობები:

PREG_OFFSET_CAPTURE

თუ ეს დროშა მითითებულია, თითოეული ნაპოვნი ქვესტრიქონისთვის მითითებული იქნება მისი პოზიცია წყაროს სტრიქონში. მნიშვნელოვანია გვახსოვდეს, რომ ეს დროშა ცვლის დაბრუნებული მონაცემების ფორმატს: ყოველი მოვლენა ბრუნდება მასივის სახით, რომლის ნულოვანი ელემენტი შეიცავს ნაპოვნი ქვესტრიქონს, ხოლო პირველი ელემენტი შეიცავს ოფსეტს. ეს დროშა ხელმისაწვდომია PHP 4.3.0 და უფრო მაღალ ვერსიაში.

დამატებითი flags პარამეტრი ხელმისაწვდომია PHP 4.3.0-დან.

ძებნა ტარდება მარცხნიდან მარჯვნივ, ხაზის დასაწყისიდან. არჩევითი ოფსეტური პარამეტრი შეიძლება გამოყენებულ იქნას ძიების ალტერნატიული საწყისი პოზიციის დასადგენად. დამატებითი ოფსეტური პარამეტრი ხელმისაწვდომია PHP 4.3.3-დან.

კომენტარი:ოფსეტური პარამეტრის გამოყენება არ არის ფუნქციის გამოძახებისას შესაბამისი სტრიქონის substr($subject, $offset) ჩანაცვლების ექვივალენტი. preg_match_all(), ვინაიდან ნიმუში შეიძლება შეიცავდეს ისეთ პირობებს, როგორიცაა ^ , $ ან (? . შედარება:

მიუხედავად იმისა, რომ ეს მაგალითი

ფუნქცია preg_match()აბრუნებს ნაპოვნი შესატყვისების რაოდენობას. ეს შეიძლება იყოს 0 (შემთხვევა არ მოიძებნა) და 1 იმიტომ preg_match()წყვეტს მუშაობას პირველი ნაპოვნი მატჩის შემდეგ. თუ თქვენ გჭირდებათ ყველა შესატყვისის პოვნა ან დათვლა, უნდა გამოიყენოთ ფუნქცია preg_match_all(). ფუნქცია preg_match()ბრუნდება ცრუშესრულების დროს რაიმე შეცდომის დაშვების შემთხვევაში.

მინიშნება:არ გამოიყენოთ ფუნქცია preg_match(), თუ საჭიროა მოცემულ სტრიქონში ქვესტრინგის არსებობის შემოწმება. გამოიყენეთ ამისათვის strpos ()ან strstr(), ვინაიდან ისინი ამ დავალებას გაცილებით სწრაფად შეასრულებენ.


მაგალითი 2. ტექსტში მოძებნეთ სიტყვა „ვებ“.

/*
ნიმუშში სპეციალური თანმიმდევრობა \b ნიშნავს სიტყვის საზღვარს,
შესაბამისად, სიტყვა "ვებ" მხოლოდ იზოლირებული შემთხვევა ემთხვევა
ნიღაბი, განსხვავებით "webbing" ან "cobweb".
*/
if (preg_match("/\bweb\b/i" , "PHP არის არჩეული ვებ სკრიპტირების ენა.")) {
ექო "შესვლა ნაპოვნია.";
) სხვა (
ექო "შესავალი ვერ მოიძებნა.";
)preg_match ("/\bweb\b/i" , "PHP არის ვებსაიტის სკრიპტირების არჩეული ენა.")) {
ექო "შესვლა ნაპოვნია.";
) სხვა (
ექო "შესავალი ვერ მოიძებნა.";
}
?>

დიდი ხანია მსურს რეგულარული გამონათქვამების გაგება. მიუხედავად იმისა, რომ "გაარკვიე" ძლიერი სიტყვაა. იმისათვის, რომ დაეუფლოთ რეგულარულ გამონათქვამების ოსტატი გახდომის დიდ ხელოვნებას, თქვენ მუდმივად უნდა იმუშაოთ მათთან. ეს არ არის საკმარისი სინტაქსის, სპეციალური სიმბოლოების და მოდიფიკატორების სწავლა - თქვენ უნდა შეძლოთ მათი გამოყენება. და გამოყენების შესაძლებლობა გამოცდილებასთან ერთად მოდის.

ამ პოსტში დავდებ რეგულარული გამონათქვამების გამოყენების მაგალითებს, რომელთა ნამუშევარი მე თვითონ გავიგე.

სპეციალური სიმბოლოების ცხრილი

განსაკუთრებული პერსონაჟი აღწერა
\ გაქცევის სიმბოლო. მაგალითი: '/seo\/smo/'- შეესაბამება ხაზს, რომელიც შეიცავს seo/smo-ს.
^ მონაცემთა სიმბოლოს დასაწყისი. მაგალითი: '/^ seo/'— შეესაბამება სტრიქონს, რომელიც იწყება სიტყვით seo.
$ მონაცემთა დასასრულის სიმბოლო. მაგალითი: '/blog$/'— შეესაბამება სტრიქონს, რომელიც მთავრდება სიტყვით ბლოგი.
. ნებისმიერი სიმბოლო, ხაზის არხის გარდა. მაგალითი: '/seo.ult/'- შეესაბამება სიმებიანი seopult, seo9ult, seo@ult და ა.შ.
ამ ფრჩხილების შიგნით არის ჩამოთვლილი სიმბოლოები, რომელთაგან ნებისმიერი შეიძლება გამოჩნდეს მოცემულ ადგილას, მაგრამ მხოლოდ ერთი. მაგალითი: '/სეულტი/'— დაემთხვევა მხოლოდ სეოპულტის, სეოკულტის ან სეომულტის შემცველი ხაზები.
| ან. მაგალითი ქვემოთ.
() ქვენიღაბი.
? წინა სიმბოლოს ან ქვენიმუშის ერთი ან ნულოვანი შემთხვევა.
* წინა სიმბოლოს ან ქვენიმუშის ნებისმიერი რაოდენობის შემთხვევა. ნულის ჩათვლით.
+ ერთი ან მეტი შემთხვევა.
მაგალითი: '/se+(op|om)?.*t/'- ასო s, შემდეგ ერთი ან მეტი ასო e, რის შემდეგაც კომბინაცია op ან om შეიძლება გამოჩნდეს ერთხელ, ან შეიძლება არა ერთხელ, შემდეგ ნებისმიერი სიმბოლოს ნებისმიერი რაოდენობა და ასო t.
(ა, ბ) წინა სიმბოლოს ან ქვეთარგის შემთხვევების რაოდენობა a-დან b-მდე. მაგალითი: (0,) - იგივეა, რაც *, (0,1) - იგივეა, რაც ?, (3,5) - 3, 4 ან 5 გამეორება.

PHP სკრიპტების მარტივი მაგალითები რეგულარული გამონათქვამების გამოყენებით:

1) წინა და შემდგომი გამონათქვამები.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // იპოვე სიტყვა, რომელშიც ing მოდის Box-ის შემდეგ. თუ სიტყვა მოიძებნა, ფუნქცია დააბრუნებს true, თუ არა, false.$pattern1 = "/Box(?=ing)/" ; preg_match ($pattern1, "Box Day"); // false preg_match ($pattern1, "Boxing Day" ); // მართალია // იპოვნეთ სიტყვა, რომელსაც არ აქვს ჩანაწერი ველის შემდეგ. თუ სიტყვა მოიძებნა, ფუნქცია დააბრუნებს true, თუ არა, false.$pattern2 = "/box(?!ing)/" ; preg_match ($pattern2, "ყუთი iPhone-ისა და iPad-ისთვის"); // true preg_match ($pattern2, "რა არის კრივის დღე?") ; // false preg_match ($pattern2, "css-moz-box-shadow" ); // მართალია // იპოვნეთ სიტყვა, სადაც ing წინ არ არის ყუთი. თუ სიტყვა მოიძებნა, ფუნქცია დააბრუნებს true, თუ არა, false.$pattern3 = "/(?

[^<]+?~","seo blog",$text); echo $text; ?>

3) მიიღეთ და აჩვენეთ მოცემული საიტის Alexa Rank-ის მნიშვნელობა.

1 2 3 4 5 6 7 8 9 "#
(.*?)
#si", file_get_contents ( "http://www.alexa.com/siteinfo/($url)") , $a ) ; დაბრუნების მორთვა (str_replace ("," , "" , strip_tags ($a [ 1 ] ) ) ); ) $alexa = alexa($url) ; ექო $alexa ; ?>

(.*?)

#si", file_get_contents("http://www.alexa.com/siteinfo/($url)"), $a); return trim(str_replace(",","",strip_tags($a))); ) $alexa = alexa ($url); echo $alexa; ?>

4) მიიღეთ და აჩვენეთ გვერდის სათაური.

1 2 3 4 5 (.*)<\/title>/s" , $str , $m ) ; echo $m [ 1 ] ; ?>

(.*)<\/title>/s", $str, $m); echo $m; ?>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 \n \r \t ]/", "" , $content ); // ახალი ხაზის და ჩანართის სიმბოლოების შეცვლა ინტერვალით$content = preg_replace ("/(2,)/" , " " , $content ); // 2-ზე მეტი ადგილის შეცვლა ერთით preg_match_all("/ ]*href=(?:"| \" )(.*)(?:"|\" )[^<>]*>(.*)<\/a>/iU", $content , $links ); // შეაგროვეთ ბმულები, თუ (sizeof ($links [ 1 ] ) > 0 ) // თუ ბმულები მოიძებნება($out = მასივი () ; // გარე ბმულების მასივი foreach ($links [ 1 ] როგორც $v ) (if (preg_match ("/http:\/\/(www\.)(0,1)" . $domain. "/i" , $v ) ) // ამოიღეთ შიდა ბმულები( გაგრძელება ; ) if ( preg_match ( "/(http:|https:)?\/\/(www\.)(0,1)(.*)/i", $v )) // გარე მითითება( $out = $v ; ) ) დაბრუნება $out ; ) დაბრუნების მასივი () ; ) $domain = "საიტი" ; $content = file_get_contents ("http://site/"); $getoutlinks = getoutlinks($content, $domain) ; ამისთვის ($i = 0; $i<= count ($getoutlinks ) ; $i ++ ) { echo $getoutlinks [ $i ] . "
" ; } ?>

]*href=(?:"|\")(.*)(?:"|\")[^<>]*>(.*)<\/a>/iU", $content, $links); // შეაგროვეთ ბმულები, თუ (sizeof($links) > 0) // თუ ბმულები მოიძებნა ($out = array(); // გარე ბმულების მასივი foreach ($links როგორც $v ) ( if (preg_match("/http:\/\/(www\.)(0,1)".$domain."/i", $v)) // ამოიღეთ შიდა ბმულები ( გაგრძელება; ) if (preg_match ("/(http:|https:)?\/\/(www\.)(0,1)(..com/"); $getoutlinks = getoutlinks($content, $domain); for ( $i = 0;$i<= count($getoutlinks); $i++) { echo $getoutlinks[$i]."
"; } ?>

სად:
preg_replace— ახორციელებს ძიებას და ჩანაცვლებას რეგულარული გამოხატვის გამოყენებით.
preg_match— ახორციელებს შემოწმებას რეგულარული გამოხატვის წინააღმდეგ.
preg_match_all— პოულობს ყველა შესატყვისს, ხოლო preg_match პოულობს მხოლოდ პირველს.
file_get_contents- მიიღეთ ფაილის შინაარსი ერთი ხაზით.
მორთვა— შლის შუალედებს სტრიქონის დასაწყისში და ბოლოს.
str_replace— ცვლის საძიებო სტრიქონს შემცვლელი სტრიქონით.
ზოლები_ტეგები— შლის html და php ტეგებს სტრიქონიდან.
ზომა— იღებს ელემენტების რაოდენობას ცვლადში.
ითვლიან— ითვლის მასივის ელემენტების რაოდენობას ან ობიექტის თვისებების რაოდენობას.