регулярное выражение: сопоставить любое слово до первого пробела

145

У меня есть следующая строка:

hshd    household   8/29/2007   LB

Я хочу сопоставить все, что находится перед первым пробелом (пробел). Итак, в этом случае я хочу вернуться

hshd
селезень
источник
2
Что не так с разделением и получением первого элемента?
Авинаш Радж

Ответы:

320
([^\s]+)

работает

SilentGhost
источник
21
Далее я бы предпочел ^, чтобы получить только первое слово
soulmerge
1
хотя в целом это правильно, я думаю, что необходимость ^зависит от конкретных реализаций языка или регулярных выражений. например, в Python вы бы использовали re.matchдля этой задачи.
SilentGhost
5
Это соответствует всем словам, а не только первому, см. Этот пример .
Райан Гейтс
1
@RyanGates отмените выбор Global, и вы увидите, что он работает так, как задумано и ожидаемо. Обратитесь к SilentGhost за примечаниями по языковым реализациям, если у вас все еще есть проблемы.
Volvox
1
@Volvox Спасибо, я пропустил это.
Райан Гейтс
46

Это должно сделать это:

^\S*
Джереми Стейн
источник
12

Возможно, вы могли бы попробовать ([^ ]+) .*, что должно дать вам все до первого бланка в вашей первой группе.

dsolimano
источник
@ire_and_curses, в Sublime Text, который пропустит последнее слово в строке. По некоторым причинам, это не так: ([^]) +
hello_there_andy
4

для всей линии

^(\w+)\s+(\w+)\s+(\d+(?:\/\d+){2})\s+(\w+)$
w35l3y
источник
1

Я думаю, что это будет хорошим решением: /\S\w*/

Джереми Кларксон
источник
1

Я думаю, слово было создано с более чем одной буквы. Мое предложение:

[^\s\s$]{2,}
Behzad
источник
-2

^ ([^ \ s] +) используйте это, это правильно соответствует только первому слову, вы можете проверить это, используя эту ссылку https://regex101.com/

даршан
источник
это вытекает из этого ответа.
даршан
Затем объясните, почему вы считаете необходимым новый ответ, и объясните любую возможную разницу; но вы обнаружите, что это уже обсуждалось в комментариях к принятому ответу. Кроме того, второй по популярности голос с ответом довольно похож, но несколько более элегантен тем, что предпочитает более простой, \Sчем эквивалентный, но неуклюжий [^\s].
tripleee