#regex
#регулярное выражение
Вопрос:
У меня есть следующая строка:
hshd household 8/29/2007 LB
Я хочу сопоставить все, что стоит перед первым пробелом (пробелом). Итак, в этом случае я хочу вернуться
hshd
Комментарии:
1. Что плохого в разделении и получении первого элемента?
2. Потому что вопрос может быть частью более масштабной задачи регулярного выражения. Скажем, для сопоставления (a_complex_regex_pattern) (whatever_word) (another_complex_regex_pattern).
Ответ №1:
([^s] )
работает
Комментарии:
1. Я бы добавил ^, чтобы получить только первое слово
2. хотя в целом это правильно, я думаю, что необходимость
^
зависит от конкретных языковых реализаций или регулярных выражений. например, в Python, который вы бы использовалиre.match
для этой задачи.3. Это соответствует всем словам, а не только первому, см. Этот пример .
4. @RyanGates отмените выбор глобального, и вы увидите, что он работает так, как предполагалось и ожидалось. Если у вас все еще возникают проблемы, обратитесь к SilentGhost для получения заметок о языковых реализациях.
5. Может
[^s]
быть упрощено доS
?
Ответ №2:
Это должно сделать это:
^S*
Ответ №3:
Возможно, вы могли бы попробовать ([^ ] ) .*
, что должно дать вам все до первого пробела в вашей первой группе.
Комментарии:
1. @ire_and_curses в Sublime Text пропускает последнее слово в строке. По какой-то причине этого не происходит: ([^ ])
Ответ №4:
Получено из ответа @SilentGhost, который я бы использовал:
^([S] )
Посмотрите этот интерактивный regexr.com страница, чтобы увидеть результат и объяснение предлагаемого решения.
Ответ №5:
для всей строки
^(w )s (w )s (d (?:/d ){2})s (w )$
Ответ №6:
Я думаю, это будет хорошим решением: /Sw*/
Ответ №7:
Я думаю, что слово было создано более чем из одной буквы. Мое предложение:
[^ss$]{2,}
Ответ №8:
^([^s] ) используйте это, оно правильно соответствует только первому слову, вы можете проверить это по этой ссылке https://regex101.com /
Комментарии:
1. оно получено из этого ответа.
2. Затем объясните, почему, по вашему мнению, требуется новый ответ, и объясните любую возможную разницу; но вы обнаружите, что это уже обсуждается в комментариях к принятому ответу. Кроме того, второй по величине ответ, получивший наибольшее количество голосов, очень похож, но несколько более элегантен в том смысле, что он предпочитает более простой
S
, чем эквивалентный, но неуклюжий[^s]
.