Differences
This shows you the differences between two versions of the page.
preg_match [2012-03-26 09:07] Joakim Forsgren |
preg_match [2022-07-18 13:20] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PHP:s " | ||
- | Det har kommit upp några frågor om hur man kan kolla om ett lösenord bara innehåller siffor och bokstäver, eller hur man kollar om en e-postadress är korrekt. Det bästa sättet tycker jag är att lära sig " | ||
- | * preg - som är en PHP wrapper av PCRE library (Perl-Compatible Regular Expressions). | ||
- | * ereg - som bygger på POSIX Extended Regular Expressions från 1986, det har hänt mycket sen dess. | ||
- | == ereg vs preg == | ||
- | När man skall jobba med " | ||
- | |||
- | Läs mer om [[http:// | ||
- | |||
- | |||
- | == Några lätta exempel för att komma igång. == | ||
- | <code php> | ||
- | $preg = "/ | ||
- | $string = " | ||
- | if (preg_match($preg, | ||
- | echo " | ||
- | } else { | ||
- | echo " | ||
- | } | ||
- | // Skriver ut : Success: '/ | ||
- | |||
- | // Sen när man kan " | ||
- | $string = preg_replace ($preg, ' | ||
- | echo "' | ||
- | // Skriver ut: ' | ||
- | |||
- | |||
- | /* | ||
- | Om man vill göra lite krångligare saker så måste man känna till lite mer. | ||
- | ^ - används för start | ||
- | $ - används för slut | ||
- | |||
- | . - betyder valfritt tecken, vill man ha just en . använd \. | ||
- | Använd \ för alla dessa tecken: \ ^ . $ | ( ) [ ] * + ? { } , | ||
- | * - 0 eller fler tecken | ||
- | + - 1 eller fler tecken | ||
- | ? - 0 eller ett tecken | ||
- | {3} - 3 tecken | ||
- | {3,} - Minst 3 tecken | ||
- | {3,6} 3 till 6 tecken | ||
- | |||
- | (hej) - en sekvens ex: (hej){1,3} matchar hej, hejhej, hejhejhej | ||
- | | - Funkar som or ex: " | ||
- | |||
- | [] Godkänner allt inom [] som match. ex: [abc] matchar a, b eller c, [abc] är samma sak som (a|b|c) | ||
- | [0-9] - Matchar en siffra | ||
- | [a-z] - Matchar en bokstav mellan a till z | ||
- | [a-zåäö] - Matchar våra svenska små bokstäver | ||
- | [0-9a-zA-ZåäöÅÄÖ] - Matchar siffor och våra svenska bokstäver, både stora och små. | ||
- | |||
- | ^ - kan också betyda inte ex: "/ | ||
- | |||
- | Sen är det bara att kombinera alla saker ovan så kommer du nog att kunna matcha det mesta ;-) | ||
- | */ | ||
- | |||
- | // och nu något man kan ha nytta av... | ||
- | $preg = "/ | ||
- | $string = "En länk till Parkskolans hemsida (http:// | ||
- | $replace = '<a href=" | ||
- | echo preg_replace ($preg, $replace, $string); | ||
- | // Skriver ut: En länk till Parkskolans hemsida (<a href=" | ||
- | |||
- | // och allra sist något man troligen inte har nytta av ;-) | ||
- | $preg = "/ | ||
- | $string = "Hå och hej, Ett hej och hå, hej säg så"; | ||
- | $replace = "$1 $3 och $2"; | ||
- | echo preg_replace ($preg, $replace, $string); | ||
- | // Skriver ut: Ett hå och hej | ||
- | </ | ||
- | |||
- | == Nu skall ni skriva några " | ||
- | - Bara små bokstäver (a-z) och 4-6 tecken. | ||
- | - Bara små bokstäver a-z och siffror, dock minst 8 tecken. | ||
- | - Ett heltal mellan 0-999. | ||
- | - En korrekt E-post adress. (Jag tycker att en korrekt e-post adress bara får innehålla a-z,0-9 punkt(.), underline(_) och tankesträck(-) före @ och efter bara a-z,0-9 punkt(.) och tankesträck(-) fastän RFC:n tillåter fler tecken...) | ||
- | - Ett heltal mellan 0-255. | ||
- | - Datum på formen yyyy-mm-dd mellan 1900-01-01 och 2099-12-31, det är ok att alla månader kan ha 31 dagar... | ||
- | |||
- | |||
- | <php> | ||
- | |||
- | // 1. $preg = "/ | ||
- | // 2. $preg = "/ | ||
- | // 3. $preg = "/ | ||
- | // 4. $preg = "/ | ||
- | // 5. $preg = "/ | ||
- | // 6. $preg = "/ | ||
- | |||
- | //Här finns en {{: | ||
- | //1. använd den för få hjälp med vilka ord att se vilka ord du kan lägga med bokstäverna TLAPCOY (tips grep hanterar ) | ||
- | |||
- | {{: | ||
- | </ | ||
- | |||
- | |||
- | |||
- | {{: |