Frage von Cecke, 15

Wenn ich nur das erste (,) einer Zeile markieren möchte, mit welchem Regulären Ausdruck lässt sich dies beschreiben?

Wenn ich nur das erste (,) einer Zeile markieren möchte, mit welchem Regulären Ausdruck lässt sich dies beschreiben?

Beispiel: Ich bin ein Text, man testet mich, einfach so....

Ich bin ein anderer Text, auch mich testet man, einfach so....

Ich möchte in dem oberen Beispiel-Text nur die ersten Kommas der einzelnen Zeilen selektieren also:

Ich bin ein Text(,) man testet mich, einfach so....

Ich bin ein anderer Text(,) auch mich testet man, einfach so....

Welchen regulären Ausdruck würdet ihr nutzen? LG

Antwort
von TeeTier, 10

Bitte bei solchen Fragen immer dazu schreiben, welchen RegEx-Dialekt und / oder welche Bibliothek / Sprache du verwendest.

Allerdings enthält deine Fragestellung fast keine Sonderfälle, sodass ganz allgemein folgendes gilt:

^.*?,.*$

Jetzt stellt sich die Frage, was du mit "markieren" oder "selektieren" meinst. Als Beispiel mal ein Einzeiler, der das erste Komma in Klammern setzt:

sed -n 's/,/(&)/p' satz.txt

Das wäre ein Beispiel mit sed, welches dir nur die Zeilen deiner Datei ausgibt, in denen das erste Kommer in Klammern gesetzt wurde.

In Java wäre es so etwas:

zeile[i].replaceFirst(",", "(,)");
... oder ...
zeile[i].replaceAll("^(.*?),(.*)$", "$1(,)$2");

Naja, auf jeden Fall wären mehr Details über deine Umgebung und den Einsatzzweck hilfreich. :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten