Կանոնավոր արտահայտություններ php նիշերի փոխարինում: PHP կանոնավոր արտահայտություններ. Բացառված կերպարների դասեր

PHP-ն, ինչպես վայել է ժամանակակից ծրագրավորման լեզվին, մշակողին առաջարկում է մի շարք գործառույթներ՝ կանոնավոր արտահայտություններ օգտագործելու համար։ Դուք կարող եք որոնել տողերի երևույթներ այլ տողերում՝ օգտագործելով բարդ չափանիշներ:

  • PREG_PATTERN_ORDER;
  • PREG_SET_ORDER:

Դասավորել ըստ Տարբերակ 1-ի, խմբերի որոնման արդյունքներն ըստ կանոնավոր արտահայտության համարի (կանխադրված): Երկրորդ դեպքում արդյունքները խմբավորվում են ըստ իրենց գտնվելու վայրի շարքում:

Խորհրդանիշ - կաղապարի տարր

Կարևոր է հիշել, որ կաղապարը գործում է սիմվոլների վրա: Ծրագրավորումը վաղուց մոռացել է, թե ինչ է «նիշերի» տվյալների տեսակը: Ժամանակակից լեզուները չեն իջնում ​​«լարի» հասկացությունից, բայց ինչ վերաբերում է օրինաչափությանը, պետք է հասկանալ. այստեղ խորհրդանիշները շահարկվում են:

Կաղապար կառուցելը նախ և առաջ նիշերի անհրաժեշտ հաջորդականության նշումն է։ Եթե ​​դուք հստակ հասկանում եք սա, ապա կաղապարում սխալներ չեն լինի: Ամեն դեպքում, դա շատ ավելի քիչ կլինի։

  • a-ն կաղապարի հատուկ տարր է՝ խորհրդանիշ:
  • a-z-ը կաղապարի տարր է, նույնպես մեկ նիշ, բայց միայն a-ից z արժեքով, ամբողջը լատիներեն փոքրատառով:
  • 0-9-ը մեկ թիվ է, ցանկացած թիվ, բայց 1-3-ը միայն 1, 2 կամ 3 է:

Օրինակի գործը կարևոր է: Նախշի առաջին և վերջին նիշերը նշանակալից են. Դուք կարող եք նշել, թե որտեղ է սկսվում և ավարտվում ձևանմուշը:

Ֆունկցիայի ձևանմուշ

PHP preg համընկնումն օգտագործում է ստանդարտ կանոնավոր արտահայտությունների շարահյուսություն: նշեք դրանցում նշված նշաններից մեկը.

  • միայն 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-ի համար ձեր սեփական կաղապարների օգտագործումը, դրանց օրինակները ինտերնետում, վեբկայքի էջերի կոդի և այլ աղբյուրների վերլուծությունը թույլ է տալիս ստեղծել կաղապարների ձեր սեփական գրադարանը:

Տեղեկություններ գտնելու բազմաթիվ տարբերակներ կան: Մասնավորապես, վերը նշված վերջին երկու կոնստրուկցիաները կարող են տարբեր կերպ մոդելավորվել: Շատ դեպքերում նախապատվությունը կտրվի այն ձևանմուշին, որն ապահովում է ցանկալի համընկնումն ավելի արագ և ճշգրիտ: Preg match all-ի օգտագործումը PHP-ում, ինչպես նաև այլ լեզուներով նմանատիպ գործառույթները պահանջում են պրակտիկա, ուշադրություն և կաղապարների ճշգրտության նախնական ստուգում:

Այս հոդվածը ներկայացնում է php regexp օրինակների ընտրություն: Կանոնավոր արտահայտման օրինակների շատ գեղեցիկ և օգտակար հավաքածու: Բոլոր կանոնավոր արտահայտությունների օրինակները ընդունելի են PHP-ի համար: Վայելեք այն ձեր առողջության համար:

Դոմենի անվան ստուգման օրինակ

Այս php հատվածը ստուգում է, թե արդյոք տողը վավեր տիրույթի անուն է:

?:.*)+):?(d+)?/?/i", $url)) ( echo «Ձեր url-ը կարգին է»: ) else (echo «Սխալ url»:;)

Տեքստում բառը ընդգծելու օրինակ

Շատ օգտակար կանոնավոր արտահայտություն տեքստում ցանկալի բառը որոնելու և ընդգծելու համար։ Կոդը հատկապես օգտակար է որոնման արդյունքների ելք ստեղծելիս:

$text = "KomunitasWeb-ի նախադասության օրինակ, regex-ը հայտնի է դարձել վեբ ծրագրավորման մեջ: Այժմ մենք սովորում ենք ռեգեքսը: Ըստ Վիքիպեդիայի, կանոնավոր արտահայտությունները (կրճատվում են որպես regex կամ regexp, հոգնակի ձևերով regex, regexps կամ regexen) գրվում են ձևական ձևով: լեզու, որը կարող է մեկնաբանվել սովորական արտահայտությունների պրոցեսորով»; $text = preg_replace("/b(regex)b/i", " 1", $text); echo $text;

Որոնման արդյունքների ընդգծման իրականացման օրինակWordPress

Բացեք search.php ֆայլը և գտեք the_title() ֆունկցիան։ Փոխարինեք այն հետևյալ տողով.

Echo $title;

Այժմ, փոխարինված տողից առաջ, տեղադրեք այս կոդը.

\0", $title); ?>

Պահպանեք ձեր search.php ֆայլը և բացեք style.css-ը: Դրան ավելացրեք հետևյալ տողը.

Strong.search-հատված (ֆոն՝ դեղին; )

Պատկերներ ստանալու օրինակHTML regexp մեթոդ

PHP կոդի այս հատվածը՝ օգտագործելով կանոնավոր արտահայտություններ, որոնում է բոլոր պատկերները և դրանց url-ը:

$ պատկերներ = զանգված (); preg_match_all("/(img|src)=("|")[^"">]+/i", $data, $media); unset ($ data); $data=preg_replace("/(img|src)("|"|="|=")(.*)/i","$3",$media); foreach($data as $url) ( $info = pathinfo($url); if (isset($info["extension"])) ( if (($info["extension"] == "jpg") || ($info["extension"] == "jpeg") || ($info["extension"] == "gif") || ($info["extension"] == "png")) array_push($ պատկերներ, $url);))

Կրկնվող բառերի հեռացում (առանց մեծատառերի)

Հաճա՞խ են լինում կրկնվող բառեր: Ապա կանոնավոր արտահայտման այս օրինակը օգտակար կլինի ձեզ համար:

$text = preg_replace ("/s(w+s)1/i", "$1", $text);

Կրկնվող կետերի հեռացում

Նույնը՝ միայն կրկնվող կետերով։

$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); վերադարձնել $matches; )

Որոնեք 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?)??((?#parameters)[^ ?]+)? HTTP/+"s+(?#կարգավիճակի կոդ)200s+((?#բայթ փոխանցված)[-0-9]+)s+"((?#հղում)[^"]*)"s+"((?#user agent) )[^"]*)"$" //Գրանցումներ. Apache վեբ սերվեր //404 սխալներ միայն «^((?#հաճախորդի IP կամ տիրույթի անուն)S+)s+((?#հիմնական նույնականացում)S+s+S+) s+[((?#ամսաթիվ և ժամ)[^]]+)]s+"(?:GET|POST|HEAD) ((?#ֆայլ)[^ ?]+)??((?#parameters)[ ^?"]+)? HTTP/+"s+(?#կարգավիճակի կոդը)404s+((?#բայթ է փոխանցվել)[-0-9]+)s+"((?#հղում)[^"]*)"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-ում պատկերների որոնման և մշակման համար։

post_content; $szSearchPattern = "~ ]* />~"; // Գործարկեք preg_match_all՝ բոլոր պատկերները գրավելու համար և արդյունքները պահպանելու համար $aPics preg_match_all ($szSearchPattern, $szPostContent, $aPics); // Ստուգեք, թե արդյոք ունենք առնվազն 1 պատկեր $iNumberOfPics = count($aPics); եթե ($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 հղումով առաջին ենթաօրինաչափությանը համապատասխանող տվյալներով։ Այսինքն՝ «/(\w+) (\d+) (\w+)/»-ին համապատասխան «ունեն 3 խնձոր»-ը կփոխարինվի (\w+)-ին համապատասխան «ունեն»-ով։

Օրինակ 3:

Այս օրինակը ցույց է տալիս, թե ինչ է տեղի ունենում, եթե դուք օգտագործում եք զանգվածներ որպես օրինակ և փոխարինում:

Օրինակ 4:

Այս օրինակը ցույց է տալիս, թե ինչ է տեղի ունենում, եթե դուք օգտագործում եք զանգվածներ որպես օրինակ, փոխարինում և առարկա:

Օրինակ 5:

Այս օրինակը ցույց է տալիս /e փոփոխիչի օգտագործումը, այսինքն, երբ փոխարինումը մեկնաբանվում է որպես php կոդ: Ստորև ներկայացված է նիշերի փոխակերպումը փոքրից մեծատառ:

Օրինակ 6:

Այս օրինակը ցույց է տալիս count փաստարկի օգտագործումը: Այստեղ արդյունքը հավասար կլինի 2-ի, ուստի երկու փոխարինում եղավ։

խառը preg_match(լարային օրինաչափություն, լարային թեմա [, զանգված &համընկնում է [, int դրոշներ [, int offset]]])

Որոնում է տվյալ տեքստի թեման՝ նախշի օրինակին համապատասխանելու համար

Եթե ​​լրացուցիչ համընկնումների պարամետրը նշված է, այն կլցվի որոնման արդյունքներով: $matches տարրը կպարունակի տողի այն հատվածը, որը կհամապատասխանի ամբողջ օրինաչափությանը, $matches-ը կպարունակի տողի այն մասը, որը համապատասխանում է առաջին ենթաօրինաչափությանը և այլն։

դրոշները կարող են վերցնել հետևյալ արժեքները.

PREG_OFFSET_CAPTURE

Եթե ​​նշված է այս դրոշը, յուրաքանչյուր հայտնաբերված ենթատողի համար կնշվի նրա դիրքը սկզբնաղբյուրի տողում: Կարևոր է հիշել, որ այս դրոշը փոխում է վերադարձված տվյալների ձևաչափը. յուրաքանչյուր երևույթ վերադարձվում է որպես զանգված, որի զրոյական տարրը պարունակում է գտնված ենթատողը, իսկ առաջին տարրը պարունակում է օֆսեթ։ Այս դրոշը հասանելի է PHP 4.3.0 և ավելի բարձր տարբերակներում:

Լրացուցիչ դրոշակների պարամետրը հասանելի է 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 հատուկ հաջորդականությունը նշանակում է բառի սահման,
հետևաբար, «վեբ» բառի միայն առանձին երևույթը կհամընկնի
դիմակ՝ ի տարբերություն «սարդոստայնի» կամ «սարդոստայնի»։
*/
if (preg_match("/\bweb\b/i" , «PHP-ն ընտրված վեբ սկրիպտավորման լեզու է»:)) {
արձագանք «Մուտքը գտնված է».;
) ուրիշ (
արձագանք «Մուտք չի գտնվել»:;
)preg_match ("/\bweb\b/i", «PHP-ն վեբկայքի սկրիպտավորման նախընտրելի լեզու է»:)) {
արձագանք «Մուտքը գտնված է».;
) ուրիշ (
արձագանք «Մուտք չի գտնվել»:;
}
?>

Ես վաղուց էի ուզում հասկանալ կանոնավոր արտահայտությունները։ Թեև «պարզել դա» ուժեղ բառ է: Սովորական արտահայտությունների վարպետ դառնալու մեծ արվեստին տիրապետելու համար հարկավոր է անընդհատ աշխատել նրանց հետ: Բավական չէ սովորել շարահյուսությունը, հատուկ նիշերը և փոփոխիչները, դուք պետք է կարողանաք օգտագործել դրանք: Իսկ օգտագործելու ունակությունը գալիս է փորձի հետ:

Այս գրառման մեջ կտեղադրեմ կանոնավոր արտահայտությունների օգտագործման օրինակներ, որոնց աշխատանքը ես ինքս հասկացել եմ։

Հատուկ կերպարների աղյուսակ

Հատուկ կերպար Նկարագրություն
\ Փախուստի խորհրդանիշ. Օրինակ: «/seo\/smo/»- համապատասխանում է այն տողին, որը պարունակում է seo/smo:
^ Տվյալների նշանի սկիզբ: Օրինակ: '/^seo/'— համապատասխանում է seo բառով սկսվող տողին:
$ Տվյալների ավարտի խորհրդանիշ: Օրինակ: «/բլոգ$/»— համընկնում է մի տողի, որն ավարտվում է բլոգ բառով:
. Ցանկացած նիշ, բացի տողերի հոսքից: Օրինակ: «/seo.ult/»- համապատասխանում է լարային seopult, seo9ult, seo@ult և այլն:
Այս փակագծերի ներսում նշված են նիշերը, որոնցից ցանկացածը կարող է հայտնվել տվյալ վայրում, բայց միայն մեկը: Օրինակ: «/սեուլտ/»— կհամընկնեն միայն seopult, seokult կամ seomult պարունակող տողերը:
| Կամ. Օրինակ ստորև.
() Ենթադիմակ.
? Նախորդ նիշի կամ ենթապատկերի մեկ կամ զրոյական երևույթ:
* Նախորդ նիշի կամ ենթապատկերի ցանկացած քանակի երևույթ: Այդ թվում՝ զրո։
+ Մեկ կամ մի քանի երևույթ.
Օրինակ: '/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»); // ճիշտ // գտիր բառ, որը տուփից հետո ing չունի: Եթե ​​բառը գտնվի, ֆունկցիան կվերադարձնի true, եթե ոչ՝ false:$pattern2 = "/box(?!ing)/" ; preg_match ($pattern2, «Box 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 "#
(.*?)
#սի", 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); վերադարձի կտրվածք(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», $բովանդակություն, $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 as $v ) ( if (preg_match("/http:\/\/(www\.)(0,1)".$domain."/i", $v)) // ջնջել ներքին հղումները (շարունակել; ) if (preg_match ("/(http:|https:)?\/\/(www\.)(0,1)(..com/"); $getoutlinks = getoutlinks($content, $domain); համար ( $i = 0;$i<= count($getoutlinks); $i++) { echo $getoutlinks[$i]."
"; } ?>

Որտեղ:
preg_replace— Կատարում է որոնում և փոխարինում՝ օգտագործելով կանոնավոր արտահայտություն:
preg_match— ստուգում է կանոնավոր արտահայտության նկատմամբ:
preg_match_all— գտնում է բոլոր համընկնումները, մինչդեռ preg_match-ը գտնում է միայն առաջինը:
file_get_contents— ստացեք ֆայլի բովանդակությունը մեկ տողով:
կտրել— հեռացնում է տողի սկզբում և վերջում բացատները:
str_replace— փոխարինում է որոնման տողը փոխարինող տողով:
strip_tags— հեռացնում է html և php պիտակները տողից:
չափը— ստանում է փոփոխականի տարրերի քանակը:
հաշվել— հաշվում է զանգվածի տարրերի թիվը կամ օբյեկտի հատկությունների քանակը: