Tråden för användbara reguljära uttryck

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3, 4, 5, 6, 7  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Sebb



Medlem i: 5237 dagar

Status: Offline



#300912
Inlägg Skrivet: 2005-07-19 11:57      Ämne: Citera

Malte skrev:
Testa då med
PHP:
1:
 $search "/(?<=^|\s)(http:\/\/|https:\/\/|ftp:\/\/)(([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$|\.\s|\.$|,\s|,$|\!\s|\!$)/U"

Alltså lägg till modifikatorn U som gör att uttrycket inte blir girigt.
Underbart! Fungerar perfekt. Tusen tack!
 

_________________
SEBBra.net
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
NDCS



Medlem i: 4800 dagar
Från: Nynäshamn
Status: Offline



#336218
Inlägg Skrivet: 2005-12-05 13:44      Ämne: Citera

Hur ska det se ut om en sträng i en löpande text slutar med t.ex. .com .net. se. .org etc etc. men inte börjar med http:// https:// ftp:// etc för att göra om t.ex. forum.phpportalen.net till en länk?
 

_________________
Ät gul snö, det kan vara öl
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
sabeln



Medlem i: 4774 dagar
Från: Göteborg
Status: Offline



#358421
Inlägg Skrivet: 2006-03-08 13:45      Ämne: Re: Tråden för användbara reguljära uttryck Citera

Jörgen HP skrev:


KOD:
1:
 
2:
// validera datum av formatet 0000-00-00
3:
/^(\d{4})-(\d{2})-(\d{2})$/
4:
 



denna är snäppet värre hehe
matchar endast datum som "finns". dvs. 29e feb funkar inte om det inte är skottår det året och 31e funkar bara om det är 31 dagar i månaden.

KOD:
1:
 
2:
/^\d{4}-(((0[13578]|1[02])-([0-2]\d$|3[01]$))|((0[469]|11)-([0-2]\d$|30$))|(02-([0-2][0-8]$)))|((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-02-29$/
3:
 


hittade den för något år sedan, blir snurrig bara man ser den raden...
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
leone



Medlem i: 4604 dagar

Status: Offline



#387579
Inlägg Skrivet: 2006-06-15 01:21      Ämne: Citera

Vilket regexp blir det om jag vill ha ut de sista två strängarna i en serie som bryts med punkter?
T.ex. vill jag ha ut php.net ur jag.har.sub.pa.php.net
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
~Kung Klurig~



Medlem i: 4476 dagar

Status: Offline



#425877
Inlägg Skrivet: 2006-10-21 12:37      Ämne: Citera

perfekt tråd RazzRazz
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
fredagen_den_14e



Medlem i: 4846 dagar

Status: Offline



#441481
Inlägg Skrivet: 2006-12-05 14:54      Ämne: Citera

Matchar e-postadresser, även med å, ä, ö eller ñ för den delen:
KOD:
1:
^[\w-_\+\.]+@\w[\w-\.]+\.+[\w-]{2,4}$


Enligt wikipedia (http://en.wikipedia.org/wiki/E-mail_address) kan följande även vara godkända i den lokala delen (innan @) av adressen:
Citat:
! # $ % & ' * / = ? ^ ` { | } ~

Dessa har jag inte tagit hänsyn till i mönstret. Folk som har epostadresser med dessa tecken får skylla sig själva Wink
Mönstret kräver också en riktig domän i domän-delen, det räcker inte med localhost eller ett ip. Också värt att notera är att den lokala delen inte får börja eller sluta med punkt, vilket mönstret inte kontrollerar.
Vill man veta att adressen är riktig och ägs av användaren som angivit den som sin bör man ju ändå skicka ut bekräftelsemail.

Något jag har glömt?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
andersj



Medlem i: 4891 dagar

Status: Offline



#447458
Inlägg Skrivet: 2007-01-02 10:16      Ämne: Citera

Smile
 

_________________
// Call to undefined function();
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Icecube



Medlem i: 5226 dagar
Från: Rävlanda
Status: Offline



#453309
Inlägg Skrivet: 2007-01-21 13:44      Ämne: Citera

jostor skrev:
Matcha en md5-krypterad sträng.
KOD:
1:
/^([0-9abcdef]{32})$/i


md5: ^[0-9a-f]{32}$ md5 returnerar ju alltid en lowercase sträng.
sha1: ^[0-9a-f]{40}$
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Matti4s



Medlem i: 4430 dagar
Från: 127.0.0.1
Status: Offline



#459448
Inlägg Skrivet: 2007-02-10 23:12      Ämne: Citera

Måste börja med bokstav och sedan innehålla a-ö 1-9 _ - caps spelar ingen roll
KOD:
1:
 
2:
preg_match('/^[a-zåäö]+[0-9a-zåäö_-]+$/i', $_POST['inputnamn'],$namnmatches)
3:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
salmiak



Medlem i: 4310 dagar

Status: Offline



#498236
Inlägg Skrivet: 2007-06-20 18:02      Ämne: Namn Citera

hej jag har lite problem, jag försöker få en regexp som matchar bara namn som inte har mer än två vokaler eller tre konsonanter på raken har försök med
PHP:
1:
 $return preg_match("/^(([aeiouyåäö]{0,2})?([bcdfghjklmnpqrstvwxz]{0,3})?[_ :@]+)+$/","hejsan ",$matches); 
men den funkar inte... kan någon hjälpa mig?

Edit: det verkar som att man inte kan ha vokaler efter konsonanter.
jag vill okså bli av med det jobbiga mellanrummet på slutet som är där för att det ska kunna vara flera olika ord...

Edit: Jag tror att jag har den perfekta regexp:en för email-adresser:
PHP:
1:
 $regexp="/^(([a-z][0-9a-z\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+)|(\".*\"))@(([0-9]\.[0-9]\.[0-9]\.[0-9])|(([\w\.åäö_:]+)\.(\w+)))$/i";
2:
$mail="\"Fungerande Adress med åäö\"@email.server.se";
3:
$return preg_match($regexp,$mail,$matches); 

"jürgen sösså"@1.2.3.4:10 funkar men inte kimmjy aåö@1.2.3.4:10
salmiak911@yahoo.se funkar och det gör även "salmiak911"@yahoo.se
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Colandus



Medlem i: 4043 dagar
Från: Stockholm/Haninge
Status: Offline



#546698
Inlägg Skrivet: 2008-01-05 08:28      Ämne: Citera

Matchar "uträkningar", t.ex:
KOD:
1:
 
2:
100*0.150=15
3:
100 * 0.150 = 15
4:
11,23232 * 0.150 = 1432,234234
5:
 


KOD:
1:
 
2:
/[0-9]+([,.][0-9]+)?([ \t]+)?[\+\-\/*^]([ \t]+)?[0-9]+([,.][0-9]+)?([ \t]+)?=([ \t]+)?[0-9]+([,.][0-9]+)?$/
3:
 



Matchar nummer, t.ex:
KOD:
1:
 
2:
435,534534535
3:
32.1233
4:
65
5:
3
6:
 


KOD:
1:
 
2:
/^[0-9]{1,2}([,.][0-9]+)?$/
3:
 


Och en bättre HTML colors check...
KOD:
1:
 
2:
/^#[a-fA-F0-9]{3,6}$/
3:
 


Vet dock inte hur man gör "och" på längder! Alltså så längden bara får vara 3 eller 6, inte mellan 3 och 6 :p

Okej, fick fram detta (editerade en annan):
PHP:
1:
 /^#?[a-fA-F0-9]{3}([a-fA-F0-9]{3})?$/ 


Vet ej om man kan göra kortare ^.-
 

_________________
فحف
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
wheelboy



Medlem i: 5838 dagar

Status: Offline



#551269
Inlägg Skrivet: 2008-01-21 02:11      Ämne: Citera

TIPS:

Hittade ett par sidor som kan eventuellt vara användbara för den som vill lära sig koda reguljära uttryck och lära sig hur de funkar, kanske på mer begripligt språk än PHP-manualen:

www.regular-expressions.info

www.regexlib.com
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
thall



Medlem i: 4540 dagar

Status: Offline



#574138
Inlägg Skrivet: 2008-04-21 23:13      Ämne: Citera

Gjorde en uppdaterad version av maltes länk omvandlare, min godkänner fler urler

Min version:
PHP:
1:
 
2:
/**
3:
    * Creates a HTML link from text
4:
    * @param $text (string) The text
5:
    * @example http://www.phpportalen.net or www.phpportalen.net/viewtopic.php?p=54259#54259 or http://forum.phpportalen.net or ftp://phpportalen.net and forum.phpportalen.net
6:
    * @return $text (string)
7:
    */
8:
   
9:
   public function linkToHTML($text) {
10:
      $search "/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z\d]+\.)+)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?(?=\s|$)/";
11:
      $replace "<a href=\"$1$3$5$6\">$1$3$5$6</a>"
12:
      
13:
      $tmp preg_match($search,$text);
14:
      if($tmp[1] !== "http://" || $tmp[1] !== "https://" || $tmp[1] !== "ftp://" || $tmp[1] !== "ftp://") {
15:
         $search "/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z\d]+\.)+)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?(?=\s|$)/";
16:
         $replace "<a href=\"http://$3$5$6\">$3$5$6</a>"
17:
      }
18:
      
19:
      $text preg_replace($search$replace$text);
20:
       
21:
      return $text;
22:
   }
23:
 



Maltes:
Malte skrev:
Göra länk av URL-er i löpande text:
PHP:
1:
<?php
2:
 
3:
$text "En länk av http://www.phpportalen.net eller www.phpportalen.net/viewtopic.php?p=54259#54259 eller http://forum.phpportalen.net eller ftp://phpportalen.net , men inte forum.phpportalen.net";
4:
 
5:
$text preg_replace("/(?<=^|\s)(www\.([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/""http://$1"$text);
6:
 
7:
$search "/(?<=^|\s)(http:\/\/|https:\/\/|ftp:\/\/)(([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/";
8:
$replace "<a href=\"$1$2\">$2</a>"
9:
$text preg_replace($search$replace$text);
10:
 
11:
echo $text;
12:
 
13:
?>


[/php]
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
bitcomplex



Medlem i: 4303 dagar
Från: Skåne
Status: Offline



#581982
Inlägg Skrivet: 2008-05-26 14:42      Ämne: Citera

Byt ut två eller flera mellanslag mot  

PHP:
1:
 preg_replace("/( {2,})/e","str_repeat(\"&nbsp;\",strlen('\\1'))",$subject
 

_________________
Twitter
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Peppe L-G



Medlem i: 4341 dagar
Från: Mullsjö
Status: Offline



#590515
Inlägg Skrivet: 2008-07-17 13:20      Ämne: Re: Tråden för användbara reguljära uttryck Citera

Jörgen HP skrev:
// eftersom funktionen is_numeric() är lite lömsk kan det vara bra att kunna kolla så ett innehåll är numeriskt
/^([0-9]+)$/

Någon som vet vad han menar med "lömsk"?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3, 4, 5, 6, 7  Nästa
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic