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

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

Réponses:


320
([^\s]+)

travaux


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


12

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


@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


4

pour toute la ligne

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


1

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

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

-2

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.