2016-06-17 7 views
0

Ich habe versucht (^[.*]{1,50}$)/gm, aber es funktioniert einfach nicht.Regec für Linien unter 50 Zeichen

Ich möchte eine Zeile, die aus beliebigen Zeichen besteht, um diese Regex zu entsprechen.

Qwertyuiop 
$$%%^^89e7hbequdwanjk 
etc should all match, including this line 

Zeilen mit mehr als 50 Zeichen sollten jedoch nicht übereinstimmen.

Antwort

3

Sie sind eine Reihe von 1-50 Vorkommen entweder Angabe . oder *. Wenn Sie eine Zeichenfolge aus beliebigen Zeichen haben möchten, ist die Zeichenklasse [...] falsch (sie listet Zeichen auf, die Sie abgleichen möchten); Sie suchen nach . ohne eckige Klammern, die zu einem beliebigen Zeichen passt.

Der reguläre Ausdruck dafür ist

^.{1,50}$ 

Einige Sprachen benötigen Sie einen Separator wie /.../ um Ihre regex zu spezifizieren, aber es ist schwer von Ihrem Beispiel zu sagen, ob Ihr eine von ihnen ist; In diesem Fall fehlt das Anfangseparator.

Das Flag /g ist nur dann sinnvoll, wenn Sie mehrere Vorkommen in derselben Zeile suchen müssen. Das /m-Flag ist sinnvoll, wenn die ^ und $ Anker Zeilen Zeilen in mehrzeiligen Text übereinstimmen sollten.

Wenn der Titel Ihrer Frage richtig ist, und Sie wollen richtig unter 50 Zeichen, ändern Sie die 50-49 (und vielleicht auch die 1-0).

1

Ihre regex, [.*] Streichhölzer Pünktchen nur . und *, da innerhalb [] buchstäblich behandelt werden. Versuchen

/^.{1,50}$/gm 

Es wird Spiel zwischen 1 und 50 von irgendetwas. Wenn Sie auch zu Capture wollen es die Klammer hinzufügen zurück

/(^.{1,50}$)/gm 
Verwandte Themen