espressione regolare: abbina qualsiasi parola fino al primo spazio


145

Ho la seguente riga:

hshd    household   8/29/2007   LB

Voglio abbinare tutto ciò che precede il primo spazio (spazi bianchi). Quindi, in questo caso, voglio tornare indietro

hshd

2
Cosa c'è di sbagliato nel dividere e ottenere il primo elem?
Avinash Raj,

Risposte:


320
([^\s]+)

lavori


21
Anticiperei ulteriormente ^ per ottenere solo la prima parola
soulmerge,

1
sebbene generalmente corretto, penso che la necessità ^dipenda da implementazioni linguistiche particolari o regexp. ad esempio in Python useresti re.matchper questa attività.
SilentGhost,

5
Questo corrisponde a tutte le parole e non solo alla prima, vedi questo esempio .
Ryan Gates,

1
@RyanGates deseleziona Global e vedrai che funziona come previsto e previsto. Fare riferimento a SilentGhost per le note sulle implementazioni del linguaggio se i problemi persistono.
Volvox,

1
@Volvox Grazie, mi ero perso.
Ryan Gates,


12

Forse potresti provare ([^ ]+) .*, il che dovrebbe darti tutto per il primo vuoto nel tuo primo gruppo.


@ire_and_curses, su Sublime Text, che salterà l'ultima parola in una riga. Per qualche motivo, ciò non: ([^]) +
hello_there_andy


4

per l'intera linea

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


1

Penso che sia stata creata una parola con più di una lettera. Il mio consiglio è:

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

-2

^ ([^ \ s] +) usalo, corrisponde correttamente solo alla prima parola che puoi testare usando questo link https://regex101.com/


deriva da quella risposta.
Darshan,

Quindi spiega perché pensi che sia necessaria una nuova risposta e spiega ogni possibile differenza; ma scoprirai che è già stato discusso nei commenti sulla risposta accettata. Inoltre, la seconda risposta più votata è abbastanza simile, ma un po 'più elegante in quanto preferisce la più semplice \Srispetto all'equivalente ma goffa [^\s].
tripla il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.