Подтвердить что ты не робот

Как получить первое слово в строке

текст:

WYATT    - Ranked # 855 with    0.006   %
XAVIER   - Ranked # 587 with    0.013   %
YONG     - Ranked # 921 with    0.006   %
YOUNG    - Ranked # 807 with    0.007   %

Я хочу получить только

WYATT
XAVIER
YONG
YOUNG

Я пробовал:

(.*)?[ ]

Но это дает мне:

WYATT    - Ranked
4b9b3361

Ответ 1

Regex для этого не требуется. Просто используйте some_string.split(' ', 1)[0] или some_string.partition(' ')[0].

Ответ 2

Используйте это регулярное выражение

^\w+

\w+ соответствует 1 ко многим символам.

\w похож на [a-zA-Z0-9_]

^ изображает начало строки


О вашем регулярном выражении

Ваше регулярное выражение (.*)?[ ] должно быть ^(.*?)[ ] или ^(.*?)(?=[ ]), если вы не хотите пробела

Ответ 3

Не нужно <<20 > . string[: string.find(' ')]

Ответ 4

Если вы хотите чувствовать себя особенно хитрым, вы можете написать это так:

(firstWord, rest) = yourLine.split(maxsplit=1)

Это должно принести лучшее из обоих миров:

Я как бы влюбился в это решение и в его возможности распаковки, поэтому мне пришлось поделиться им. :)

Ответ 5

Вам не нужно регулярное выражение для разделения строки на пробелы:

In [1]: text = '''WYATT    - Ranked # 855 with    0.006   %
   ...: XAVIER   - Ranked # 587 with    0.013   %
   ...: YONG     - Ranked # 921 with    0.006   %
   ...: YOUNG    - Ranked # 807 with    0.007   %'''

In [2]: print '\n'.join(line.split()[0] for line in text.split('\n'))
WYATT
XAVIER
YONG
YOUNG

Ответ 6

Вы можете сделать что-то вроде:

print line.split()[0]

Ответ 7

брах вещь хахахахахахахаххаахахахаххр ты неудачник м8