Geht nicht gibts nicht ?

  • Ltd Hilfe Datei kann man in der Funktion _ArraySearch mittels Regulärer Ausdrücke suchen, nur wie soll das funktionieren? Im folgenden Beispiel müsste doch von* zu einem Treffer führen... macht es aber nicht...

    Was mache ich da wieder falsch?

    Danke

    Peter


    #include <Array.au3>

    Global $arr[5] = ["element_0", "element_1", 'element_2', 'vonhiernachHause', 'element_5']

    _ArrayDisplay ($arr)

    MsgBox (0, 'Ergebnis', _ArraySearch ($arr, 'von*'))

    MsgBox (0, 'error Flag', @error)

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • ich denke "von*" ist kein regulärer Ausdruck

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Naja da hast Du schon recht, aber in der Hilfe steht:

    $vValue = der Suchbegriff

    Funktion _ArraySearch

    Vergleich verwendet als Muster einen regulären Ausdruck der in $vValue geschrieben steht

    Das verstehe ich so, dass in $ vValue sowohl der Suchbegriff (von) als auch der Reguläre Ausdruck (*) stehen soll

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • #include <Array.au3>

    Global $arr[5] = ["element_0", "element_1", 'element_2', 'vonhiernachHause', 'element_5']

    _ArrayDisplay ($arr)

    MsgBox (0, 'Ergebnis', _ArraySearch ($arr, 'von*',0,0,0,3))

    MsgBox (0, 'error Flag', @error)

    so gehts. du musst angeben, dass du mit RegEx suchen willst ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Na klar... Grazie mille... irgendwie bin ich neuerdings blind....

    Herzlichen Dank

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Code
    MsgBox (0, 'Ergebnis', _ArraySearch ($arr, 'von*'))
    MsgBox (0, 'error Flag', @error)

    NB.: Falls mit dem zweiten MsgBox-Statement der Wert von @error nach _ArraySearch zurückgegeben werden soll, dann funktioniert das so nicht, da @error durch das 1. MsgBox-Statement neu gesetzt wird. Zuerst wird _ArraySearch ausgeführt, dann MsgBox.

  • Moin Peter S. Taler,

    nur zur Sicherheit:

    Dir ist klar, dass der reguläre Ausdruck von* nach einem Vorkommen der kleingeschriebenen Zeichen vo gefolgt von keinem oder beliebig vielen kleingeschriebenenn an beliebiger Stelle im Text sucht?

    AutoIt
    #include <Array.au3>
    Global $aArr[5] = ["elvoent_0", "element_1", 'element_2', 'vonhiernachHause', 'element_5']
    _ArrayDisplay($aArr)
    Global $iItem = _ArraySearch($aArr, 'von*', Default, Default, Default, 3)
    If @error Then
        MsgBox (0, 'Error Flag', @error)
    Else
        MsgBox (0, 'Ergebnis', "Index: " & $iItem & @CRLF & "Text: " & $aArr[$iItem])
    EndIf
  • Mahlzeit Velted,

    du schreibst....Dir ist klar, dass der reguläre Ausdruck von* nach einem Vorkommen der kleingeschriebenen Zeichen vo gefolgt von keinem oder beliebig vielen kleingeschriebenenn an beliebiger Stelle im Text sucht?

    Danke für den Hinweis... könnte man eigentlich als Bug melden. Denn eine klare Trennung zwischen Suchwort und reg Expression gibt es dann, da das Suchwort von ist, ja eigentlich nicht?

    Da das in #1 nur ein Beispiel war, und meine Suchbegriffe anders aussehen trifft es mich nicht....hab trotzdem Dank

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Danke für den Hinweis... könnte man eigentlich als Bug melden. Denn eine klare Trennung zwischen Suchwort und reg Expression gibt es dann, da das Suchwort von ist, ja eigentlich nicht?

    Nein.

    Entweder du hast ein reines Suchwort (String) oder du verwendest einen Regulären Ausdruck, der auf dein Suchwort zutrifft.

    Um auf dein Bsp. mit 'vonhiernachHause' zurück zu kommen, wäre als Pattern möglich:

    - Ausdruck beginnt mit "von"

    - gefolgt von 1-beliebig viele Zeichen (hier könntest du noch verfeinern auf z. B. nur Buchstaben)

    Pattern: "^von. *"

  • Heute ist nicht mein Tag.... Danke Bugfix

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Ich denke du hast da Regular Expressions mit dem Pseudo Zeug verwechselt, das manchmal bei Pfaden,... verwendet wird.

    * ist bei Regular Expressions ein Quantifier, der nur angibt, wie oft das vorher auftauchen muss. * steht dabei für 0 oder mehr.

    Die Quickreference auf https://regex101.com/ ist recht nett, wenn du mal schauen möchtest, was es alles gibt und die Webseite ist auch sehr hilfreich um zu sehen, was ein RegExp macht, weil an der rechten Seite aufgelistet wird, was genau passiert.

  • Danke, von Regex Hilfen kann man nicht genug bekommen. Mein Verständnis für Regex war schon größer, wenn man dann 3 Jahre keinen mehr benutzt ---> weg oder besser in den Tiefen verschwunden, bis dann alles wieder, vile zu langsam, "auftaucht"

    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)