regulärer Ausdruck: Entspricht einem beliebigen Wort bis zum ersten Leerzeichen


145

Ich habe die folgende Zeile:

hshd    household   8/29/2007   LB

Ich möchte alles abgleichen, was vor dem ersten Leerzeichen (Leerzeichen) steht. In diesem Fall möchte ich zurück

hshd

2
Was ist falsch daran, das erste Element zu teilen und zu bekommen?
Avinash Raj

Antworten:


319
([^\s]+)

funktioniert


21
Ich würde weiter vorstellen, um nur das erste Wort zu bekommen
soulmerge

1
^Obwohl dies im Allgemeinen korrekt ist, denke ich, dass die Notwendigkeit von bestimmten Sprachimplementierungen oder regulären Ausdrücken abhängt. Zum Beispiel in Python, das Sie re.matchfür diese Aufgabe verwenden würden.
SilentGhost

5
Dies entspricht allen Wörtern und nicht nur dem ersten, siehe dieses Beispiel .
Ryan Gates

1
@RyanGates deaktivieren Sie Global und Sie werden sehen, dass es wie beabsichtigt und erwartet funktioniert. Hinweise zu Sprachimplementierungen finden Sie in SilentGhost, wenn Sie weiterhin Probleme haben.
Volvox

1
@ Volvox Danke, das hatte ich verpasst.
Ryan Gates


12

Vielleicht könnten Sie es versuchen ([^ ]+) .*, was Ihnen alles bis zum ersten Leerzeichen in Ihrer ersten Gruppe geben sollte.


@ire_and_curses in Sublime Text überspringt das letzte Wort in einer Zeile. Aus irgendeinem Grund ist dies nicht: ([^]) +
hello_there_andy


4

für die gesamte Linie

^(\w+)\s+(\w+)\s+(\d+(?:\/\d+){2})\s+(\w+)$


1

Ich denke, ein Wort wurde mit mehr als einem Buchstaben erstellt. Mein Vorschlag ist:

[^\s\s$]{2,}

-2

^ ([^ \ s] +) Verwenden Sie dies, es stimmt nur mit dem ersten Wort überein, das Sie über diesen Link testen können. https://regex101.com/


es leitet sich aus dieser Antwort ab.
Darshan

Erklären Sie dann, warum Ihrer Meinung nach eine neue Antwort erforderlich ist, und erläutern Sie mögliche Unterschiede. Sie werden jedoch feststellen, dass dies bereits in den Kommentaren zur akzeptierten Antwort besprochen wird. Auch die zweithöchste Antwort ist ziemlich ähnlich, aber etwas eleganter, da sie die einfachere \Sgegenüber der äquivalenten, aber klobigen bevorzugt [^\s].
Tripleee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.