Anzeige

Regex Leerzeichen

Regex Leerzeichen | PSD-Tutorials.de

Erstellt von Refus, 12.09.2010.

  1. Refus

    Refus aka Noisy

    Dabei seit:
    16.03.2006
    Beiträge:
    900
    Geschlecht:
    männlich
    Ort:
    Frankfurt
    Kameratyp:
    Canon 550D
    Regex Leerzeichen
    Ich hab hier ein Regex welches URLs erkenne soll.

    PHP:
    1. $text = preg_replace_callback('#(( |^)(((ftp|https|http|)://)|www\..)\S+)#mi', 'linkLenght', $text);
    Wenn man aktuell mit www. beginnt und dann ein Leerzeichen macht wird das nächste Wort noch mit in die angebliche ULR genommen, allerdings möchte ich, dass es nachdem leerzeichen abbricht bzw. das ganze nicht als URL gezählt wird.

    Hab es mit ^[:space:] in in alle mögliche Kombinationen versucht, allerdings funktioniert dann gar nichts mehr und $text ist am Ende leer. Kann mir jemand sagen wie ich also Leerzeichen in . ausschließe? Danke.
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Regex Leerzeichen
    AW: Regex Leerzeichen

    Wenn ich deinen Ausdruck bei RegexPal eingebe, erkennt er alles bis exklusive dem Leerzeichen als Treffer. Vielleicht habe ich dich nicht richtig verstanden, aber für mich sieht das für deine Anforderungen korrekt aus.

    Ansonsten könntest du mglw. mal ein paar Testfälle und Codeausschnitte nennen, damit man das Problem nachvollziehen kann.


    Duddle
     
    #2      
  3. Refus

    Refus aka Noisy

    Dabei seit:
    16.03.2006
    Beiträge:
    900
    Geschlecht:
    männlich
    Ort:
    Frankfurt
    Kameratyp:
    Canon 550D
    Regex Leerzeichen
    #3      
  4. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Regex Leerzeichen
    AW: Regex Leerzeichen

    Ahja, verstehe. Problem erkannt, Problem gebannt!
    alt:
    PHP:
    1.  $text = preg_replace_callback('#(( |^)(((ftp|https|http|)://)|www\..)\S+)#mi', 'linkLenght', $text);  
    neu:
    PHP:
    1.  $text = preg_replace_callback('#(( |^)(((ftp|https|http|)://)|www\.)\S+)#mi', 'linkLenght', $text);  
    Hinter dem www\. ist noch ein . der für alle möglichen Zeichen, also auch Leerzeichen u.a., stehen kann.


    Duddle
     
    #4      
  5. Refus

    Refus aka Noisy

    Dabei seit:
    16.03.2006
    Beiträge:
    900
    Geschlecht:
    männlich
    Ort:
    Frankfurt
    Kameratyp:
    Canon 550D
    Regex Leerzeichen
    AW: Regex Leerzeichen

    Hach, danke dir.
    Regex und ich werden niemals Freunde werden.
     
    #5      
  6. Doitsu

    Doitsu Aktives Mitglied

    Dabei seit:
    15.04.2009
    Beiträge:
    482
    Regex Leerzeichen
    AW: Regex Leerzeichen

    Nur mal kleine Frage dazu:
    Du verwendest ewig viele Klammern & so, brauchst du die ueberhaupt alle?
    Ich meine sowas duerfte doch vollkommen reichen:
    PHP:
    1. $text = ' www.example.tld hi';
    2. preg_replace_callback('#(?: |^)((?:f|ht)tps?://|www\.)\S+#mi', 'linkLenght', $text);
    3. # array(2) { [0]=> string(16) " www.example.tld" [1]=> string(4) "www." }
    4.  
    5. $text = 'http://www.example.tld hi';
    6. preg_replace_callback('#(?: |^)((?:f|ht)tps?://|www\.)\S+#mi', 'linkLenght', $text);
    7. # array(2) { [0]=> string(22) "http://www.example.tld" [1]=> string(7) "http://" }
    8.  
    9. $text = ' http:// hi';
    10. preg_replace_callback('#(?: |^)((?:f|ht)tps?://|www\.)\S+#mi', 'linkLenght', $text);
    11. # nicht ausgefuehrt
    12.  
    13. $text = 'www. hi';
    14. preg_replace_callback('#(?: |^)((?:f|ht)tps?://|www\.)\S+#mi', 'linkLenght', $text);
    15. # nicht ausgefuehrt
    Was mir gerade auffaellt: in beiden Faellen wird http://www. gematcht - am bestend du suchst gleich nach kompletten Domains, nicht nur nach den Anfang ..
    http://regexlib.com/DisplayPatterns.aspx?cattabindex=1&categoryId=2
     
    Zuletzt bearbeitet: 13.09.2010
    #6      
Seobility SEO Tool
x
×
×