Wie kann ich eine Zeichenfolge bis zu dem ersten Komma (wenn vorhanden) mit einem regexp Ruby
Ich bin kämpfen, um eine regexp (in Ruby), in der folgenden
"one, two" -> "one"
"one, two, three" -> "one"
"one two three" -> "one two three"
Ich möchte, dass alle Zeichen bis zum ersten Komma in einen string. Wenn es keine Kommas möchte ich den gesamten string angepasst werden. Mein bester Versuch bisher ist
/.*(?=,)?/
Diese erzeugt die folgende Ausgabe aus den oben genannten Beispielen
"one, two" -> "one"
"one, two, three" -> "one, two"
"one two three" -> "one two three"
In der Nähe, aber keine Zigarre. Kann mir jemand helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frage ich mich, ob es nicht einfacher sein:
(.*?),
zu finden, nur in der aktuellen ZeileTut es haben ein regex? Eine andere Lösung:
'text'.split(',').first
vermeidet eine regex völlig. 🙂Hätte passender nicht nur Kommas, die von Anfang an funktionieren? z.B.:
$1
ist nicht festgelegt (ob der reguläre Ausdruck entspricht der gesamte string oder ein sub-string).=~
.Wie etwa
/.*?(?=,|$)/
so ist es entweder liest an das Ende oder ein Komma./.*?(?=,)?/
, wäre nicht in übereinstimmung mit den leeren string?