Meine mehrzeiliges Eingabe string
:Erhalten erste Strings aus einem mehrzeiligen Text getrimmt
123
2345 a
ab_cd: xxxx
123abc 456
:y
I Want ist das erste Spiel jeder Zeile bekommen möchte, wo das Muster [0-9a-z_]{1,100}
paßt - Leerraum am Anfang ignoriert und leere Zeilen.
So würde mein erwartetes Ergebnis zu sein:
123
2345
ab_cd
123abc
Mein Muster nicht zu funktionieren scheint:
$entries = string.match(/^(?:\s*)([a-z0-9_]{1,100})(?:.*)$/gm);
Die Nicht-Erfassung Gruppe scheint ignoriert zu werden. Ich bekomme:
[ "123", " 2345 a", " ab_cd: xxxx", " 123abc 456" ]
Nur :y
wird korrekt ignoriert. Was mache ich hier falsch? Obwohl ich dieses Tag hinzugefügt habe, denke ich, es ist kein JS-Problem ...
Bearbeiten: Ich wäre glücklich, das Problem mit dem Regex-Muster zu lösen, nicht mit JS bedeutet.
Was sind die nicht einfangenden Gruppen * für *? Wäre nicht '/^\ s * ([a-z0-9 _] {1.100}). * $/Gm' ausreichend? (Oder einfach nur '/^\ s * ([a-z0-9 _] {1.100})/gm'?) – Biffen
@Biffen Ich dachte ich muss explizit erklären was ich nicht will. Ich möchte nur '([a-z0-9 _] {1.100})' bekommen. Wahrscheinlich habe ich nicht ganz verstanden. – robsch
Das ist nicht ganz so wie es funktioniert. Solange Sie das, was Sie * wollen, in eine Gruppe einbinden, können Sie das Teil nur durch seine Gruppennummer erhalten. – Biffen