expression régulière: correspond à n'importe quel mot jusqu'au premier espace

145

J'ai la ligne suivante:

hshd    household   8/29/2007   LB

Je veux faire correspondre tout ce qui précède le premier espace (espace blanc). Donc, dans ce cas, je veux revenir

hshd
Canard
la source
2
Quel est le problème avec le fractionnement et l'obtention du premier élément?
Avinash Raj

Réponses:

320
([^\s]+)

travaux

SilentGhost
la source
21
Je voudrais encore ajouter ^ pour obtenir le premier mot seulement
soulmerge
1
bien que généralement correct, je pense que le besoin de ^dépend des implémentations de langage ou de l'expression régulière. par exemple en Python que vous utiliseriez re.matchpour cette tâche.
SilentGhost
5
Cela correspond à tous les mots et pas seulement au premier, voir cet exemple .
Ryan Gates
1
@RyanGates désélectionnez Global et vous verrez que cela fonctionne comme prévu et attendu. Référez-vous à SilentGhost pour des notes sur les implémentations de langage si vous rencontrez toujours des problèmes.
Volvox
1
@Volvox Merci, j'avais raté ça.
Ryan Gates
46

Cela devrait le faire:

^\S*
Jeremy Stein
la source
12

Peut-être pourriez-vous essayer ([^ ]+) .*, ce qui devrait vous donner tout pour le premier blanc de votre premier groupe.

dsolimano
la source
@ire_and_curses, sur Sublime Text, qui sautera le dernier mot d'une ligne. Pour une raison quelconque, cela ne fonctionne pas: ([^]) +
hello_there_andy
6

Dérivé de la réponse de @SilentGhost, j'utiliserais:

^([\S]+)

Consultez cette page interactive regexr.com pour voir le résultat et l'explication de la solution suggérée.

MaEtUgR
la source
4

pour toute la ligne

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

Je pense que ce sera une bonne solution: /\S\w*/

Jeremy Clarkson
la source
1

Je pense qu'un mot a été créé avec plus d'une lettre. Ma suggestion est:

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

^ ([^ \ s] +) utilisez ceci il correspond correctement uniquement au premier mot que vous pouvez tester en utilisant ce lien https://regex101.com/

darshan
la source
son dérivé de cette réponse.
darshan
Expliquez ensuite pourquoi vous pensez qu'une nouvelle réponse est nécessaire et expliquez toute différence possible; mais vous constaterez qu'il est déjà discuté dans les commentaires sur la réponse acceptée. En outre, la deuxième réponse la plus votée est assez similaire, mais un peu plus élégante en ce qu'elle préfère la plus simple \Sà l'équivalent mais maladroite [^\s].
tripleee