expresión regular: empareja cualquier palabra hasta el primer espacio

145

Tengo la siguiente línea:

hshd    household   8/29/2007   LB

Quiero hacer coincidir todo lo que viene antes del primer espacio (espacio en blanco). Entonces, en este caso, quiero volver

hshd
Pato
fuente
2
¿Qué hay de malo en dividir y obtener el primer elemento?
Avinash Raj

Respuestas:

320
([^\s]+)

trabajos

SilentGhost
fuente
21
Me gustaría más anteponer ^ para obtener la primera palabra
soulmerge
1
Si bien en general es correcto, creo que la necesidad ^depende de implementaciones de lenguaje particulares o expresiones regulares. por ejemplo en Python que usarías re.matchpara esta tarea.
SilentGhost
55
Esto coincide con todas las palabras y no solo con la primera, vea este ejemplo .
Ryan Gates
1
@RyanGates anula la selección de Global y verás que funciona según lo previsto y esperado. Consulte SilentGhost para obtener notas sobre implementaciones de lenguaje si todavía tiene problemas.
Volvox
1
@Volvox Gracias, me lo había perdido.
Ryan Gates
46

Esto debería hacerlo:

^\S*
Jeremy Stein
fuente
12

Quizás podría intentarlo ([^ ]+) .*, lo que debería darle todo al primer espacio en blanco de su primer grupo.

dsolimano
fuente
@ire_and_curses, en Sublime Text, que omitirá la última palabra en una línea. Por alguna razón, esto no: ([^]) +
hello_there_andy
4

para toda la línea

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

Creo que esa será una buena solución: /\S\w*/

Jeremy Clarkson
fuente
1

Creo que se creó una palabra con más de una letra. Mi sugerencia es:

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

^ ([^ \ s] +) use esto, coincide correctamente solo con la primera palabra, puede probar esto usando este enlace https://regex101.com/

Darshan
fuente
se deriva de esa respuesta.
darshan
Luego explique por qué cree que se requiere una nueva respuesta y explique cualquier diferencia posible; pero encontrará que ya se discute en los comentarios sobre la respuesta aceptada. Además, la segunda respuesta más votada es bastante similar, pero algo más elegante, ya que prefiere la más simple \Ssobre la equivalente pero torpe [^\s].
tripleee