Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

RegExp - String nach Wörtern durchsuchen

Letzter Beitrag 07-23-2008 14:43 von GudulaSchwingenheuer. 8 Antworten.
Seite 1 von 1 (9 Treffer)
Beiträge sortieren: Zurück Weiter
  • 07-21-2008 21:40

    RegExp - String nach Wörtern durchsuchen

     Hallo

    ich möchte gerne einen String nach bestimmten Wörtern durchsuchen. Diese Wörter habe ich mal in eine Array gesteckt. Jetzt soll mir true zurückgeliefert werden, wenn eines oder mehrere dieser Wörter im String vorkommen. 

    Aber irgendwie stehe ich mit dem Scirpt auf dem Schlauch. Es wird immer nur das letzte Muster im Array durchsucht.

    </p><p>&lt;%
    dim txt
    txt = "Dies ist der willi"

    function checkZeichen(byval strtext)
    arrKomm = array("Willi","Mausi","Walter","Michi","Hallo")

    dim objreg, i
    set objreg = new regexp
    for i = 0 to ubound(arrKomm)
    objreg.pattern = "(" &amp; arrkomm(i) &amp; ")"
    objreg.IgnoreCase = true
    objreg.Global = true
    checkZeichen = objreg.test(strtext)
    next
    set objreg = nothing
    end function

    Response.write checkZeichen(txt)

    %&gt;</p><p>
     

      Wo liegt denn hier der Fehler?

    Liebe Grüße, die Gudula! 

     

    Abgelegt unter: ,
    • IP-Adresse ist Registriert
  • 07-21-2008 21:48 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    Du überschreibst das Ergebnis ja immer wieder...

     

    for i = 0 to ubound(arrKomm)
    objreg.pattern = "(" &amp; arrkomm(i) &amp; ")"
    objreg.IgnoreCase = true
    objreg.Global = true
    checkZeichen = objreg.test(strtext)
    next

     probiere mal:

    checkZeichen =checkZeichen &  objreg.test(strtext)

     Dann bekommst Du alle Ergebnisse

     

    • IP-Adresse ist Registriert
  • 07-22-2008 12:22 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    Hi

    Danke für die Antwort. Ich möchte diese Funktion als Feldvalidierung nutzen.

    Das mit dem Überschreiben ist mir klar. Dann müsste ich ja noch via instr() prüfen, ob ein Wert wahr ist.

    Oder gibt es noch eine andere Lösung?

     

    lg Gudula 

    Abgelegt unter: ,
    • IP-Adresse ist Registriert
  • 07-22-2008 12:56 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    ehrlich gesagt verstehe ich nicht die Notwendigkeit von RegExp...

    außerdem, glaube ich nicht so richtig daran, dass Dein Pattern überhaupt funktioniert... aber uich kenne mich mit Regexp auch nicht gut aus.

    Ich würde das ganz einfach mit instr regeln

    function checkZeichen(txt)

    arrKomm = array("Willi","Mausi","Walter","Michi","Hallo")

       for i= 0 to ubound(arrKomm)

            if instr(txt,arr(I),vbTextCompare) >0 then 
                 checkZeichen=true
           exit function
            end if

       next

    end function

    • IP-Adresse ist Registriert
  • 07-22-2008 20:26 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    Hallo

    dies sind jetzt auch nur Beispielstrings. In Wirklichkeit handelt es sich bei der Abfrage um bestimmte Zeichenketten, die erkannt werden sollen z.B. a href oder http:// [url] etc. Ich bin auch kein RegExp-Experte, aber vermutlich bekommt man das sogar in einem Muster unter. Ich muss mal schauen. 

    Ich nehme RegExp auch ganz gerne, weil ich im String nach mehreren Mustern suchen will und gleichzeitig Groß- und Kleinschreibung keine Rolle spielen soll.  

     

    • IP-Adresse ist Registriert
  • 07-22-2008 20:43 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    ... ein guter Weg sind Regexps auf jueden Fall. Ich brauch es nur zu selten und fange immer wieder von vorne an.

    Aber gut... Dann war Dein Problem, bei einem Match aus der Function herauszuspringen?

     

    • IP-Adresse ist Registriert
  • 07-22-2008 21:50 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    Hi Chris, 

    also die Funktion sollte am Ende true oder false zurückgeben, das war das Ziel. Herausspringen ??

    Ist ja immer mal ganz gut, wenn man auch mal über ein Problem sprechen kann und in diesem Fall hat es auch geholfen, halt mit einer Idee. Ich werde jetzt mal versuchen, das "Problemchen" in einem Pattern unterzubringen und dann ohne for-Schleife und instr() der Funktion true oder false zu entlocken. :)

    lg Gudula

     

    • IP-Adresse ist Registriert
  • 07-22-2008 22:52 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    na Du hast es ja eigentlich schon.... nur, dass wenn ein Match da ist, Du das nicht zurückgibst sondern die Schleife weiter läuft.
    das "Exit Function" meinte ich mit herausspringen... 

    dim txt
    txt = "Dies ist der willi"

    function checkZeichen(byval strtext)
         arrKomm = array("Willi","Mausi","Walter","Michi","Hallo")

         dim objreg, i

        checkZeichen = false   'Standardwert ist false bis ein Treffer gefunden wird

        set objreg = new regexp

        for i = 0 to ubound(arrKomm)
            objreg.pattern = "(" &amp; arrkomm(i) &amp; ")"
            objreg.IgnoreCase = true
            objreg.Global = true

            
            If objreg.test(strtext) then 
                checkZeichen = true   

                set objreg = nothing 'Object zerstören
                exit Function  'Die Funktion wird verlassen, wenn ein Match gefunden ist
            end if

        next
        
        set objreg = nothing
    end function

    Response.write checkZeichen(txt)


    • IP-Adresse ist Registriert
  • 07-23-2008 14:43 Antwort zu

    AW: RegExp - String nach Wörtern durchsuchen

    Hi Chris,

    ach das meinst Du, Danke für den Tipp.

    Ich habe es aber doch jetzt so gelöst
            objreg.pattern = "(a href|\[url|http|www|://)"      

    Es läuft auch etwas schneller :)

    Nochmals Danke für Deine Hilfe.

    lg Gudula 

     

     

    • IP-Adresse ist Registriert
Seite 1 von 1 (9 Treffer)