tkeil: Frage zu JavaScript

Hallo,

Ne kurze Frage an alle die sich mit Regulären Ausdrücken in JavaScripten beschäftigen:

Im Firefox verwende ich DownThemAll und habe mich unter https://developer.mozilla.org/de/docs/W ... xpressions schonmal n bissl tiefer mit den Ausdrücken beschäftigt.

Nun: stellt euch mal ne website vor auf welcher ihr mit DtA in der Suchliste folgende Dateien findet:

Start Filter war *.txt

Ergebnis:

text1.txt text2.txt text_2.txt text_1.txt

(nur Beispielhaft)

nun weiß ich das ich mit dem Filter [^2].txt alle Ergebnisse mit der ner 2 im Namen negieren kann. Mein Ziel ist es aber nur Dateien mit text1.txt oder text2.txt

nicht aber Dateien mit Unterstrich auszuwählen.

Könnt ihr mir sagen, wie ich Dateien mit Unterstrich im Namen negiere. [^_*].txt hat zum Beispiel nicht funktioniert.

Gibt es eine Negation solcher Sonderzeichen oder kann man diese irgendwie - deklarieren mit eckigen Klammern oder so und anschließend negieren?

Vielen Dank für eure Antworten!

  1. Tach!

    nun weiß ich das ich mit dem Filter [^2].txt alle Ergebnisse mit der ner 2 im Namen negieren kann.

    Das ist nicht richtig. Der Ausdruck heißt, dass keine 2 gefolgt von einem beliebigen Zeichen, gefolgt von txt passt. Also, foo2bartxt passt nicht, aber 2xtxt würde passen. Wenn der Punkt für sich sebst stehen soll, muss er mit einem \ maskiert werden. Keine 2 im Namen wäre: [^2]*\.txt, was ausgesprochen heißt: keine 2, davon beliebig viele, gefolgt von Punkt und txt.

    Mein Ziel ist es aber nur Dateien mit text1.txt oder text2.txt nicht aber Dateien mit Unterstrich auszuwählen.

    Könnt ihr mir sagen, wie ich Dateien mit Unterstrich im Namen negiere. [^_*].txt hat zum Beispiel nicht funktioniert.

    Das * ist (fast) richtig, aber nicht an der Stelle. Das bedeutet so, wie es jetzt dasteht: Unterstrich und Stern dürfen nicht vorkommen, und der Rest wie oben beschrieben. Bekommst du es nun selbst hin, oder soll ich dir sagen, dass die Lösung [^_]*\.txt lautet?

    dedlfix.

    1. @@dedlfix

      oder soll ich dir sagen, dass die Lösung [^_]*.txt lautet?

      Sag’s lieber nicht; es wäre ja nicht ganz korrekt. Wegen des nicht escapeten ., wie du selbst sagtest. ;-)

      LLAP 🖖

      PS: Oder soll ich dir sagen, dass Markdown doof ist? Wegen des nicht escapeten \ ;-)

      --
      „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
      „Hat auf dem Forum herumgelungert …“
      (Wachen in Asterix 36: Der Papyrus des Cäsar)
      1. Hallo Gunnar Bittersmann,

        oder soll ich dir sagen, dass die Lösung [^_]*.txt lautet?

        Sag’s lieber nicht; es wäre ja nicht ganz korrekt. Wegen des nicht escapeten ., wie du selbst sagtest. ;-)

        LLAP 🖖

        PS: Oder soll ich dir sagen, dass Markdown doof ist? Wegen des nicht escapeten \ ;-)

        Ich habs repariert. Und nein, das darfst du nicht sagen ;-)

        Bis demnächst
        Matthias

        --
        Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
        1. Hallo,

          PS: Oder soll ich dir sagen, dass Markdown doof ist?

          Und nein, das darfst du nicht sagen ;-)

          Darf er denn wenigstens „Markdoof ist down“, dann hat er nix verbotenes gesagt und jeder weiß trotzdem was gemeint ist...

          Gruß
          Kalk

  2. Hi,

    Ne kurze Frage an alle die sich mit Regulären Ausdrücken in JavaScripten beschäftigen:

    reguläre Ausdrücke (regular expressions) sind ein sprachenübergreifendes Konzept, es wäre also irreführend, das auf Javascript beschränkt zu sehen.

    text1.txt
    text2.txt
    text_2.txt
    text_1.txt

    nun weiß ich das ich mit dem Filter [^2].txt alle Ergebnisse mit der ner 2 im Namen negieren kann.

    Das stimmt nur halb. Der Ausdruck [^2].txt bedeutet:

    • ein beliebiges Zeichen außer der Ziffer 2
    • danach ein beliebiges Zeichen (der Punkt ist in RegEx das Jokerzeichen)
    • danach die Zeichenfolge "txt"

    Der Ausdruck würde also auch auf "coffee2go.txt" passen, aber auch auf "abctxt".

    Mein Ziel ist es aber nur Dateien mit text1.txt oder text2.txt

    nicht aber Dateien mit Unterstrich auszuwählen.

    Könnt ihr mir sagen, wie ich Dateien mit Unterstrich im Namen negiere.

    Formuliere das bitte etwas präziser. Ich interpretiere mal: Du willst Namen finden, die mit ".txt" enden, davor eine Ziffer haben, aber keinen Unterstrich enthalten?

    Wenn ja: Lass uns von vorn nach hinten durchgehen.

    • beliebig viele Zeichen, die kein Unterstrich sind: [^_]*
    • eine Ziffer (oder mehrere??): [0-9]+
    • die Zeichenfolge ".txt

    Damit lautet der Ausdruck also: [^_]*[0-9]+\.txt

    Der Stern bedeutet beliebig viele Vorkommen des vorangegangenen Elements; das Pluszeichen bedeutet beliebig viele, aber mindestens eins. Der Punkt steht normalerweise für "ein beliebiges Zeichen"; meint man ihn wörtlich, muss man ihn mit einem Backslash davor "escapen".

    [^_*].txt hat zum Beispiel nicht funktioniert.

    Was bedeutet denn das? "Finde ein beliebiges Zeichen außer Unterstrich und Stern, danach ein beliebiges Zeichen, danach die Zeichen "txt".

    Gibt es eine Negation solcher Sonderzeichen oder kann man diese irgendwie - deklarieren mit eckigen Klammern oder so und anschließend negieren?

    Ich würde dir empfehlen, dich mit RegEx etwas intensiver zu befassen. Das begegnet einem immer wieder. Nicht nur in Javascript, nicht nur in Programmiersprachen.

    So long,
     Martin

    1. Hi, und vielen Dank für die schnellen Antworten,

      ähm ich hatte bspw. eine Datei die sagen wir mal so aussieht gefiltert:

      bla/123_3.txt

      und gleichzeitig ergab meine Suche noch einen Treffer für

      bla/123.txt

      nun war es mein Ziel sowohl den Unterstrich und die folgende Zahl rauszustreichen nicht aber die andere Datei.

      Ja mit dem Sternchen hab ich mich wahrscheinlich vertan.

      Zur Erläuterung ich führe diese Suche mit DownThemAll und hab es mal mit dem Tipp: [^_]*[0-9]+.txt versucht leider kann DTA damit nix anfangen.

      Dachte aber DtA arbeitet mit regulären Begriffen und Java Script : zumindest und das wollte ich ausdrücken lässt sich eine Zahl bspw. [^2] rausschmeißen aber halt leider kein [^_]. Oder verwendet das Programm doch kein JavaScript?

      1. Hi, und vielen Dank für die schnellen Antworten,

        ähm ich hatte bspw. eine Datei die sagen wir mal so aussieht gefiltert:

        bla/123_3.txt

        und gleichzeitig ergab meine Suche noch einen Treffer für

        bla/123.txt

        nun war es mein Ziel sowohl den Unterstrich und die folgende Zahl rauszustreichen nicht aber die andere Datei.

        Ja mit dem Sternchen hab ich mich wahrscheinlich vertan.

        Zur Erläuterung ich führe diese Suche mit DownThemAll und hab es mal mit dem Tipp: [^_]*[0-9]+.txt versucht leider kann DTA damit nix anfangen.

        Dachte aber DtA arbeitet mit regulären Begriffen und Java Script : zumindest und das wollte ich ausdrücken lässt sich eine Zahl bspw. [^2] rausschmeißen aber halt leider kein [^_]. Oder verwendet das Programm doch kein JavaScript?

        Kennt ihr noch andere Ausdrücke?

        1. Ja, so nun funktioniert folgender Ausdruck

          /[^_]*[0-9]\.txt - im Forum scheint der Backslash nicht richtig zu funktionieren

          leider sind auch Zahlen >9 hinter dem Unterstrich, was muss man denn jetzt statt der 9 schreiben um all Zahlen hinter einem nicht gern gesehenen Unterstrich rauszufiltern.

          Ich danke euch für eure Hilfe!!

          1. Hallo tkeil,

            Ja, so nun funktioniert folgender Ausdruck

            /[^_]*[0-9]\.txt - im Forum scheint der Backslash nicht richtig zu funktionieren

            Das wie beim regulären Ausdruck. Man muss den Backslash maskieren.

            Bis demnächst
            Matthias

            --
            Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
            1. Hey Matthias,

              ähm die Frage war eigentlich, wie kann ich den Zahlenbereich erweitern?

              1. Hallo

                ähm die Frage war eigentlich, wie kann ich den Zahlenbereich erweitern?

                Mit [0-9] ist der Zahlenbereich in dem auf diesem Planeten wohl geläufigsten Ziffersystem vollkommen abgedeckt. Du suchst nach Ziffern (Klasse [0-9]) in beliebiger Länge (keine Angabe der Zeichenkettenlänge).

                Tschö, Auge

                --
                Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                Terry Pratchett, „Gevatter Tod“
                1. Hallo Auge,

                  Mit [0-9] ist der Zahlenbereich in dem auf diesem Planeten wohl geläufigsten Ziffersystem vollkommen abgedeckt.

                  Das ist eine schwierige Aussage.

                  LG,
                  CK

                  1. Tach!

                    Mit [0-9] ist der Zahlenbereich in dem auf diesem Planeten wohl geläufigsten Ziffersystem vollkommen abgedeckt.

                    Das ist eine schwierige Aussage.

                    Ja, man müsste nun ermitteln, wie oft noch die chinesischen Zahlzeichen verwendet werden und inwieweit sie schon von den 0..9 verdrängt wurden.

                    dedlfix.

                    1. Tach!

                      Mit [0-9] ist der Zahlenbereich in dem auf diesem Planeten wohl geläufigsten Ziffersystem vollkommen abgedeckt.

                      Das ist eine schwierige Aussage.

                      Ja, man müsste nun ermitteln, wie oft noch die chinesischen Zahlzeichen verwendet werden und inwieweit sie schon von den 0..9 verdrängt wurden.

                      Ich hab heut mal einen Chinesen gefragt und es ist wohl so, dass überwiegend die 0..9 Anwendung finden, wenn es um die Darstellung von Nummern und Zahlen geht. Also beispielsweise Postleitzahlen, Preise und Telefonnummern werden nur mit 0..9 geschrieben. Die traditionellen Zahlzeichen finden eher in Texten Anwendung, ähnlich wie bei uns, wenn statt der Zahlen Wörter verwendet werden: "Vor langer Zeit lebten drei Mönche in einem Tempel ..."

                      dedlfix.

                  2. Hallo

                    Jetzt muss ich auch mal. Schon allein, um ausgiebig mit 'ner Kramdown-Tabelle und Fußnoten rumspielen zu können. :-)

                    Mit [0-9] ist der Zahlenbereich in dem auf diesem Planeten wohl geläufigsten Ziffersystem vollkommen abgedeckt.

                    Das ist eine schwierige Aussage.

                    Nun ja, mit der Formulierung „wohl geläufigsten“ könnte ich mich darauf zurückziehen, eine Vermutung geäußert zu haben. Andererseits mag das chinesische Schriftzahlensystem in mehreren bevölkerungsreichen Ländern benutzt werden, aber selbst dort wird es nicht ausschließlich [1], und damit, über den Globus gerechnet, wohl [2] nicht häufiger als die arabischen Ziffern [3] genutzt.

                    Auflistung der im Wikipedia-Artikel erwähnten Länder.

                    Land Bevölkerung Zeitpunkt der Erhebung [4]
                    Japan 126.659.683 März 2012
                    VR China 1.367.485.388 Juli 2015
                    Taiwan 23.367.320 November 2013
                    KDVR 24.052.231 Oktober 2008
                    Südkorea 51.465.228 August 2015
                    SR Vietnam 93.421.835 Juli 2014
                    ===
                    Summe 1.686.451.685

                    Die Weltbevölkerung beträgt 7.336 Mrd. Menschen (2015).

                    Tschö, Auge

                    --
                    Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                    Terry Pratchett, „Gevatter Tod“

                    1. Zitat aus dem von dir verlinkten Artikel: „Das traditionelle System der chinesischen Zahlzeichen … wird im chinesischen Alltagsleben neben den arabischen Ziffern verwendet. Auch in anderen Ländern mit chinesischer Schrift (vor allem Japan, sehr selten in Korea und Vietnam) sind diese Schriftzeichen für die Zahlen im Gebrauch.“ Hervorhebung von mir. ↩︎

                    2. schon wieder ;-) ↩︎

                    3. Gemeint sind die, die wir im lateinischen und kyrillischen Schriftsystem als arabische Ziffern (modern-arabische Ziffern) kennen. Bei Arabern sehe ich eher jene, die im verlinkten Wikipedia-Artikel als „arabisch-indische Zahlen“ bezeichnet werden. ↩︎

                    4. Quelle Wikipedia ↩︎

                    1. @@Auge

                      Jetzt muss ich auch mal. Schon allein, um ausgiebig mit 'ner Kramdown-Tabelle und Fußnoten rumspielen zu können. :-)

                      Markdoof ist doch nicht down.

                      LLAP 🖖

                      --
                      „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
                      „Hat auf dem Forum herumgelungert …“
                      (Wachen in Asterix 36: Der Papyrus des Cäsar)
            2. @@Matthias Apsel

              /[^_]*[0-9]\.txt - im Forum scheint der Backslash nicht richtig zu funktionieren

              Das wie beim regulären Ausdruck. Man muss den Backslash maskieren.

              Besser: Code als Code auszeichnen: /[^_]*[0-9]\.txt

              Dann darf man den Backslash nicht maskieren.

              LLAP 🖖

              --
              „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
              „Hat auf dem Forum herumgelungert …“
              (Wachen in Asterix 36: Der Papyrus des Cäsar)
          2. Hallo tkeil,

            /[^_]*[0-9]\.txt - im Forum scheint der Backslash nicht richtig zu funktionieren

            leider sind auch Zahlen >9 hinter dem Unterstrich, was muss man denn jetzt statt der 9 schreiben um all Zahlen hinter einem nicht gern gesehenen Unterstrich rauszufiltern.

            Du möchtest [0-9] mindestens einmal aber beliebig oft? Dafür gibt es Quantoren.

            Bis demnächst
            Matthias

            --
            Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
            1. Habe nun folgendes verwendet,

              Code: /[^_]*[0-9]{2,5}"/".txt - Weiß nich wie ich diesen Backslash realisieren soll

              Vielleicht muss ich es etwas diskreter ausdrücken:

              nun hat er alle bla/text-1_0...9.txt nicht markiert wie gewünscht, aber ab _10 hat er sie wieder markiert

              aber das wirklich tragische ist: bla/text-1.txt hat er auch gleich mit deaktiviert, obwohl die Zeile doch eigentlich nur Unterstriche negieren sollte oder seh ich das verkehrt?

          3. Tach!

            Ja, so nun funktioniert folgender Ausdruck

            /[^_]*[0-9]\.txt - im Forum scheint der Backslash nicht richtig zu funktionieren

            leider sind auch Zahlen >9 hinter dem Unterstrich, was muss man denn jetzt statt der 9 schreiben um all Zahlen hinter einem nicht gern gesehenen Unterstrich rauszufiltern.

            Genauso wie beim ungewünschten Unterstrich auch, wenn es beliebig viele sein sollen. Ansonsten siehe beispielsweise da: http://tech.jonathangardner.net/wiki/Regex#Multipliers

            dedlfix.

            1. Habe nun folgendes verwendet,

              Code: /[^_]*[0-9]{2,5}"/".txt - Weiß nich wie ich diesen Backslash realisieren soll

              Vielleicht muss ich es etwas diskreter ausdrücken:

              nun hat er alle bla/text-1_0...9.txt nicht markiert wie gewünscht, aber ab _10 hat er sie wieder markiert

              aber das wirklich tragische ist: bla/text-1.txt hat er auch gleich mit deaktiviert, obwohl die Zeile doch eigentlich nur Unterstriche negieren sollte oder seh ich das verkehrt?

              Um es noch weiter zu präzisieren: Mich interessiert ausschließlich text-1.txt und alle Abkömmlinge text-1_x.txt möchte ich deaktivieren - könntet ihr so nett sein und mir nur kurz mal aufschreiben wie so eine Filterzeile aussieht: irgendwie scheine ich nicht die richtige Information rüberzubringen.

              1. [Vollzitat]

                Ihr würdet mir riesig helfen, mit einer Zeile die das vermag!

                Danke im Voraus!

                1. Hallo tkeil,

                  [Vollzitat]

                  Bitte vermeide Vollzitate.

                  Ihr würdet mir riesig helfen, mit einer Zeile die das vermag!

                  Bitte unterlasse Drängelbeiträge. Dies ist SELFhtml, nicht GEThtml. Du bekommst Unterstützung dabei, wie du dein Problem lösen kannst, wir werden das nicht für dich übernehmen.

                  Bis demnächst
                  Matthias

                  --
                  Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
                  1. Sorry, so wars nich gemeint!

                    Ihr habt mir ja schon ein ganzes Stück geholfen, nur glaube ich, dass meine Formulierung noch nicht treffend genug war.

                    MfG

                    1. Hallo,

                      nur glaube ich, dass meine Formulierung noch nicht treffend genug war.

                      diese Formulierung trifft den Nagel allerdings auf den Kopf!

                      Du hast es tatsächlich in bislang elf Postings noch nicht geschafft, genau zu beschreiben, was du eigentlich suchst. Darüber hinaus machst du den Eindruck, als ob du Erklärungen gar nicht zur Kenntnis nimmst.
                      Stattdessen probierst du konfus und wahllos etwas aus, anstatt mal nachzulesen, wie RegEx eigentlich "funktionieren" - zum Beispiel im hiesigen Wiki.

                      Also bitte: Denk nochmal einen Moment nach und und formuliere dann (in Worten) ein Muster, das du finden willst. Dann können wir weitersehen.

                      Oder du liest dich in RegEx ein (einen guten Startpunkt habe ich eben verlinkt) und versuchst mit dem so erworbenen Wissen, SELF auf die Lösung zu kommen. Auch dabei helfen wir gern.

                      Aber einfach aus Spaß irgendeine Phantasie-Syntax auszuprobieren, und per Salamitaktik in jedem zweiten Posting noch einen weiteren Aspekt über das gewünschte Sichmuster zu verraten, kommt einfach nicht gut.

                      So long,
                       Martin

              2. Tach!

                Habe nun folgendes verwendet,

                Code: /[^_]*[0-9]{2,5}"/".txt - Weiß nich wie ich diesen Backslash realisieren soll

                Kein Unterstrich, beliebig oft, gefolgt von 2 bis 5 Ziffern - das ist der Anfang. Ein Backslash ist einer, der in Leserichtung nach rückwärts fällt. Für das Forum hier musst du den zweimal schreiben, um einen zu bekommen.

                Vielleicht muss ich es etwas diskreter ausdrücken:

                Konkreter wäre besser ;)

                nun hat er alle bla/text-1_0...9.txt nicht markiert wie gewünscht, aber ab _10 hat er sie wieder markiert

                Der * steht für beliebig viele, aber auch 0. Damit hast du 0 nicht vorhandene Unterstriche gefolgt von 2 bis 5 Ziffern, was auf alles passt, was 2 bis 5 Ziffern sind. So ist das noch nicht zielführend.

                aber das wirklich tragische ist: bla/text-1.txt hat er auch gleich mit deaktiviert, obwohl die Zeile doch eigentlich nur Unterstriche negieren sollte oder seh ich das verkehrt?

                Passt ja auch nicht, weil keine 2 Ziffern enthalten sind.

                Um es noch weiter zu präzisieren: Mich interessiert ausschließlich text-1.txt und alle Abkömmlinge text-1_x.txt möchte ich deaktivieren - könntet ihr so nett sein und mir nur kurz mal aufschreiben wie so eine Filterzeile aussieht: irgendwie scheine ich nicht die richtige Information rüberzubringen.

                Wäre dann nicht dein Suchmuster: Bindestrich, Ziffern (mindestens eine), Punkt, txt?

                dedlfix.

                1. hallo dedlfix,

                  Danke für deinen Tipp mit \ das hatte ich gesucht

                  Ok gute Idee, aber wie drückt man in javascript aus /blabla Bindestrich, mindestens eine Ziffer, kein Unterstrich oder sonst irgendwas punkt txt

                  Das hat mit den Zeilen vorher nicht so ganz geklappt.

                  hab auch n bissl rumprobiert, aber naja ich versteh vom Programmieren nicht viel

                  MfG

                  1. Hallo tkeil,

                    Danke für deinen Tipp mit \ das hatte ich gesucht

                    Das gilt aber nur für das Forum!

                    Ok gute Idee, aber wie drückt man in javascript aus /blabla Bindestrich, mindestens eine Ziffer, kein Unterstrich oder sonst irgendwas punkt txt

                    Drücks doch mal in Deutsch aus. Dann findet man bestimmt auch einen regulären Ausdruck.

                    Bis demnächst
                    Matthias

                    --
                    Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
                    1. Aloha ;)

                      Danke für deinen Tipp mit \ das hatte ich gesucht

                      Das gilt aber nur für das Forum!

                      Naja, fast ;) Tatsächlich (wenn auch nicht bei JavaScript) muss in vielen Programmiersprachen bei Strings, die RegExe darstellen, der Backslash escaped werden. - z.B. in den entsprechenden Funktionen in Java.

                      Grüße,

                      RIDER

                      --
                      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                      1. Hi,

                        Naja, fast ;) Tatsächlich (wenn auch nicht bei JavaScript) muss in vielen Programmiersprachen bei Strings, die RegExe darstellen, der Backslash escaped werden.

                        Warum die Einschränkung auf Strings, die Regexe darstellen? Da in den meisten Sprachen der Backslash Zeichen im String escaped, muß er, um direkt im String zu stehen, escaped werden. Ob der Stringinhalt dabei zufällig ein Regex ist, spielt keine Rolle.

                        cu,
                        Andreas a/k/a MudGuard

                        1. Aloha ;)

                          Warum die Einschränkung auf Strings, die Regexe darstellen? Da in den meisten Sprachen der Backslash Zeichen im String escaped, muß er, um direkt im String zu stehen, escaped werden. Ob der Stringinhalt dabei zufällig ein Regex ist, spielt keine Rolle.

                          FACK - die Einschränkung war nicht so gemeint, dass der Backslash sonst nicht escaped werden müsste; es ging mir damit mehr um die Verknüpfung der (allgemein für Strings gültigen) Regel zu Regexen, die ja nicht generell und zwangsläufig in jeder Sprache durch Standard-Strings repräsentiert werden.

                          JavaScript zum Beispiel kennt ja eine ganz eigene, String-unabhängige Syntax mittels /.../, und hat ein eigenes Literal, das für Regex-Objekte steht, während Java und PHP sogar gar kein eigenes Regex-Objekt kennen und stattdessen mit Strings arbeiten. (Bei PHP ist es sogar ganz verrückt, weil bei PHP in Strings, die mittels '...' erzeugt wurden, für das einfache \ nicht escaped werden muss - wohl aber das doppelte \\ und ein Vorkommen von \' in '...' und allgemein natürlich innerhalb "...")

                          Grüße,

                          RIDER

                          --
                          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                  2. Tach!

                    Ok gute Idee, aber wie drückt man in javascript aus /blabla Bindestrich, mindestens eine Ziffer, kein Unterstrich oder sonst irgendwas punkt txt

                    Du fokussierst dich grad zu sehr auf den Unterstrich. Aber der fällt automatisch durch das Sieb, wenn du den Teil nicht beachtest und stattdessen als Bedingung formulierst, dass nach den Ziffern gleich der Punkt und txt zu folgen hat. Oder gibt es noch andere Situationen, wo zwischen den Ziffern und dem .txt was stehen darf?

                    dedlfix.

                    1. OK, gut

                      es gibt folgende Suchergebnisse,

                      bla/100-1-1.txt

                      bla/abc:100-1-1/1.txt

                      bla/100-1-1_1.txt

                      wichtig wäre nur die bla/100-1-1.txt

                      die 100-1 vor der letzten Ziffer steht nur für eine Ziffernfolge welche allerdings noch länger ist und wurde von mir zur Übersichtlichkeit in 1 und 0 ersetzt. Ebenso steht abc für eine Buchstabenfolge aber hier dachte ich an sowas wie /[^a][^b][^c]*[^_].txt aber das versteht er irgendwie nicht so richtig. ebenso wenig kann ich den \ wegfiltern.

                      Wahrscheinlich kriege ich aber sowieso nicht alles weggefiltert, weswegen ich das abc einfach drinn lassen würde, da es für den Suchalgorithmus schon eine enorme Erleichterung wäre wenn der Unterstrich rausfallen würde.

                      1. Jetzt spukt er es aus! Danke euch für eure Geduld. bla/*-[0-9]{1,5}\.txt damit hats funktioniert! Übrigens ist es keine Fantasie-Syntax, aber trotzdem danke!

    2. Hi,

      Mein Ziel ist es aber nur Dateien mit text1.txt oder text2.txt nicht aber Dateien mit Unterstrich auszuwählen.

      Könnt ihr mir sagen, wie ich Dateien mit Unterstrich im Namen negiere. Wenn ja: Lass uns von vorn nach hinten durchgehen.

      • beliebig viele Zeichen, die kein Unterstrich sind: [^_]*
      • eine Ziffer (oder mehrere??): [0-9]+
      • die Zeichenfolge ".txt Damit lautet der Ausdruck also: [^_]*[0-9]+\.txt

      Dieser Ausdruck paßt nicht zur Aufgabenstellung, denn er matcht text_2.txt

      Und zwar den Teil ab 2.

      Denn [^_]* trifft auch auf KEIN Zeichen zu.

      [^_]* matcht also nichts, [0-9]+ matcht die 2, \. den Punkt und txt das txt.

      Mit + statt * wär's schon besser. Aber dann würde 2.txt nicht mehr gematcht. Ob das richtig oder falsch ist, hängt von der (nicht wirklich präzisen) Aufgabenstellung ab.

      Außerdem matcht der Ausdruck auch sowas wie text2.txt.pdf (weil hinten nicht verankert ...)

      cu,
      Andreas a/k/a MudGuard