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
Erpel
quelle
2
Was ist falsch daran, das erste Element zu teilen und zu bekommen?
Avinash Raj

Antworten:

319
([^\s]+)

funktioniert

SilentGhost
quelle
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
46

Dies sollte es tun:

^\S*
Jeremy Stein
quelle
12

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

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

Abgeleitet von der Antwort von @SilentGhost würde ich verwenden:

^([\S]+)

Auf dieser interaktiven Seite von regexr.com finden Sie das Ergebnis und die Erklärung für die vorgeschlagene Lösung.

MaEtUgR
quelle
4

für die gesamte Linie

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

Ich denke, das wird eine gute Lösung sein: /\S\w*/

Jeremy Clarkson
quelle
1

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

[^\s\s$]{2,}
Behzad
quelle
-2

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

Darshan
quelle
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