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)
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.
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 domeneProvjera 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 tekstuVrlo 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 WordPressuKao š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 dokumentaAko 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 znakovaSlično prethodnom, ali uklanja interpunkcijske znakove.
$tekst = preg_replace("/.+/i", ".", $tekst);
Pronalaženje XML/HTML oznakeJednostavna 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 atributaFunkcija 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 bojaFunkcija 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 straniceOvaj 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 zapisaMnoge 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 lozinkeOvaj 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 izrazaAko 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.