Primjeri utakmica trudnica. PHP (regularni izraz) - što je to? Primjeri i testiranje regularnih izraza. Osnovni regularni izraz

Najčešće upotrebe regularnih izraza u Perlu su operatori pretraživanja i zamjene kao što su s//, m/, operatori povezivanja =~ ili != itd. U pravilu, svi ovi operateri imaju slične mogućnosti kao što su:

Obično su sve te opcije označene kao "/x". Mogu se čak koristiti unutar predložaka pomoću nove konstrukcije (?...)

Regularni izrazi ili obrasci su isti kao regexp procedure u Unixu. Izrazi i sintaksa posuđeni su iz slobodno distribuiranih V8 procedura Henryja Spencera, gdje su detaljno opisani.

Predlošci koriste sljedeće metaznakove (znakove koji označavaju grupe drugih znakova) koji se često nazivaju egrep standardom:

Metaznakovi imaju modifikatore (napisane nakon metakaraktera):

U svim ostalim slučajevima, vitičaste zagrade smatraju se običnim (pravilnim) znakovima. Stoga je "*" ekvivalent (0,) , "+" je (1,) i "?" - (0,1). n i m ne mogu biti veći od 65536.

Prema zadanim postavkama, metakarakteri su pohlepni. Podudaranje se propagira onoliko puta koliko je moguće, bez uzimanja u obzir učinka sljedećih metakaraktera. Ako im želite "smanjiti apetit", upotrijebite simbol "?". Ovo ne mijenja značenje metaznakova, samo smanjuje širenje. Tako:

Zamjenski znakovi rade na isti način kao dvostruki navodnici, tako da u njima možete koristiti znakove `\` (obrnute kose crte):

\t - znak kartice
\n - nova linija
\r - povrat kočije
\A - prijevod formata
\v - okomito tabeliranje
\a - poziv
\e - pobjeći
\033 - oktalni zapis simbola
\x1A - heksadecimalni
\c[ - kontrolni simbol
\l - mali sljedeći znak
\u - velika slova -//-
\L - svi znakovi su mala slova do \E
\U - u gornjem dijelu -//-
\E - limiter promjene registra
\Q - poništi akciju kao metakarakter

Osim toga, Perlu su dodani sljedeći metakarakteri:

Imajte na umu da je ovo sve "jedan" znak. Koristite modifikatore za označavanje slijeda. Tako:

Osim toga, postoje imaginarni metakarakteri. Označavanje nepostojećih simbola na mjestu promjene vrijednosti. kao što su:

Granica riječi (\b) je zamišljena točka između znakova \w i \W. Unutar klase znakova, "\b" predstavlja znak povratnice. Metaznakovi \A i \Z slični su "^" i "$", ali ako početak retka "^" i kraj retka "$" djeluju za svaki redak u višerednom nizu, tada \A i \Z označavaju početak i kraj cijelog višerednog niza .

Ako se unutar uzorka koristi grupiranje (zagrade), tada se broj podniza grupe označava kao "\cifra". Imajte na umu da slijedeći uzorak unutar izraza ili bloka, ove grupe su označene kao "$digit". Osim toga, postoje dodatne varijable:

Primjer:

$s = "Jedan 1 dva 2 i tri 3"; if ($s =~ /(\d+)\D+(\d+)/) ( print "$1\n"; # Rezultat "1" print "$2\n"; # "2" print "$+\n" ; # "2" print "$&\n"; # "1 two 2" print "$`\n"; # "One " print "$"\n"; # " and three 3" )

Perl verzija 5 sadrži dodatne konstrukcije predložaka:

Primjer:

$s = "1+2-3*4"; if ($s =~ /(\d)(?=-)/) # Pronađite broj iza kojeg slijedi "-" ( print "$1\n"; # Rezultat "2") else ( print "search error\n" ;)

(?!uzorak) - “gledanje” unaprijed negacijom:

Primjer:

$s = "1+2-3*4"; if ($s =~ /(\d)(?!\+)/) # Pronađite znamenku iza koje ne slijedi "+" ( print "$1\n"; # Rezultat "2" ) else ( print "traži pogreška\n"; )

(?ismx) - “unutarnji” modifikatori. Pogodno je koristiti u predlošcima, gdje, na primjer, morate odrediti modifikator unutar predloška.

Pravila regularnog izraza. (regeks)

  • Bilo koji znak predstavlja sam sebe osim ako nije metakarakter. Ako trebate poništiti učinak metaznaka, stavite "\" ispred njega.
  • Niz znakova označava niz ovih znakova.
  • Skup mogućih simbola (klasa) je uglate zagrade"", to znači da se na ovom mjestu može pojaviti jedan od znakova navedenih u zagradama. Ako je prvi znak u zagradama “^”, tada se nijedan od navedenih znakova ne može pojaviti na ovom mjestu u izrazu. Unutar klase možete koristiti simbol "-" za označavanje niza znakova. Na primjer, a-z je jedno od malih slova latinične abecede, 0-9 je broj itd.
  • Forum PHP portala. S.U.

    Regularni izrazi vrlo su koristan alat za programere. Regularni izrazi omogućuju vam provjeru, pretragu i izmjenu ispravnosti teksta.
    Ovaj članak sadrži neke vrlo korisne izraze s kojima često morate raditi.

    Uvod u regularne izraze

    Kada se prvi put upoznate s regularnim izrazima, može se činiti da ih je teško razumjeti i koristiti. Zapravo, sve je jednostavnije nego što se čini. Prije nego što pogledamo složene primjere, pogledajmo osnove:

    Funkcije za rad s regularnim izrazima u PHP-u Provjera domene

    Provjera ispravnog naziva domene.

    $url = "http://example.com/"; if (preg_match("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $url)) ( echo "U redu."); ) else ( echo "Pogrešan url."; )

    Označavanje riječi u tekstu

    Vrlo koristan regularni izraz za . Korisno za pretraživanje.

    $text = "Uzorak rečenice, regex je postao popularan u web programiranju. Sada učimo regex. Prema wikipediji, regularni izrazi (skraćeno kao regex ili regexp, s oblicima množine regexs, regexps ili regexen) napisani su u formalnom jeziku koji može se interpretirati procesorom regularnih izraza"; $tekst = preg_replace("/b(regex)b/i", "1", $tekst); echo $tekst;

    Označavanje rezultata pretraživanja u WordPressu

    Kao što je već spomenuto, prethodni primjer je vrlo koristan za . Primijenimo to na WordPress. Otvorite datoteku search.php, pronaći funkciju Naslov(). Zamijenite ga sljedećim:

    Echo $title;

    Sada prije ovog retka umetnite kod:

    Otvorite datoteku stil.css. Dodajte mu redak:

    Strong.search-excerpt ( pozadina: žuta; )

    Preuzmite sve slike iz HTML dokumenta

    Ako ikada trebate pronaći sve slike na HTML stranica, bit će vam koristan sljedeći kôd. Pomoću njega možete jednostavno stvoriti program za učitavanje slika koristeći .

    $slike = niz(); preg_match_all("/(img|src)=("|")[^"">]+/i", $podaci, $mediji); poništi($podaci); $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($ slike, $url);

    Uklanjanje dvostrukih riječi (neovisno o velikim i velikim slovima) $text = preg_replace("/s(w+s)1/i", "$1", $text); Uklanjanje dvostrukih interpunkcijskih znakova

    Slično prethodnom, ali uklanja interpunkcijske znakove.

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

    Pronalaženje XML/HTML oznake

    Jednostavna funkcija koja uzima dva argumenta: oznaku koju treba pronaći i niz koji sadrži XML ili HTML.

    Funkcija get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(]*>(.*?).")", $xml, $matches, PREG_PATTERN_ORDER); return $matches;

    Pronalaženje XML/HTML oznake s određenom vrijednošću atributa

    Funkcija je slična prethodnoj, ali postaje moguće odrediti atribut oznake. Na primjer: .

    Funkcija get_tag($attr, $value, $xml, $tag=null) ( if(is_null($tag)) $tag = "\w+"; else $tag = preg_quote($tag); $attr = preg_quote($ $value = preg_quote($value); $tag_regex = "/]*$attr\s*=\s*". .*?)/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); return $matches; )

    Pronalaženje heksadecimalnih kodova boja

    Funkcija vam omogućuje pronalaženje ili provjeru točnosti heksadecimalnih kodova boja.

    $string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "primjer 6 uspješan."; )

    Traženje naslova stranice

    Ovaj kod će pronaći i prikazati tekst između oznaka I HTML stranice.

    $fp = fopen("http://www.catswhocode.com/blog","r"); while (!feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi("(.*)",$page,$regs); echo $regs; fclose($fp);

    Raščlanjivanje Apache zapisa

    Mnoge stranice rade na Apache web poslužitelj. Ako vaše web mjesto radi i na taco poslužitelju, sljedeće redovite rutine mogu biti korisne.

    //Dnevnici: Apache web poslužitelj// Uspješni pristupi html datoteke. Korisno za brojanje pojavljivanja stranica. "^((?#IP klijenta ili naziv domene)S+)s+((?#osnovna provjera autentičnosti)S+s+S+)s+[((?#datum i vrijeme)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?]+?.html?)??((?#parametri)[^ ?]+)? HTTP/+"s+(?#status code)200s+((?#bytes transfered)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$" //Dnevnici: web poslužitelj Apache //404 pogreške "^((?#IP ili naziv domene klijenta)S+)s+((?#osnovna provjera autentičnosti)S+s+S+)s+ [((?#datum i vrijeme)[^]]+)]s+"(?:GET|POST|HEAD) ((?#datoteka)[^ ?]+)??((?#parametri)[^ ? "]+)? HTTP/+"s+(?#status kod)404s+((?#preneseno bajtova)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#korisnički agent )[^"]*)"$")

    Zamjena dvostrukih navodnika vitičastim preg_replace("B"b([^"x84x93x94rn]+)b"B", "?1?", $text); Provjera složenosti lozinke

    Ovaj regularni izraz provjerava niz točku po točku: niz mora sadržavati najmanje 6 slova, brojeva, podvlaka i crtica. Redak mora sadržavati barem jedan veliko slovo, mala slova i broj.

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

    WordPress: dobivanje slika za objave pomoću regularnog izraza

    Ako koristite WordPress, možda će vam biti korisno imati značajku koja će dobiti sve slike iz posta i prikazati ih. Da biste koristili ovaj kod, kopirajte ga u svoje datoteke teme.



    2024 wisemotors.ru. Kako radi. Željezo. Rudarstvo. Kriptovaluta.