Ответ 1
Regex для этого не требуется. Просто используйте some_string.split(' ', 1)[0]
или some_string.partition(' ')[0]
.
текст:
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
Regex для этого не требуется. Просто используйте some_string.split(' ', 1)[0]
или some_string.partition(' ')[0]
.
Используйте это регулярное выражение
^\w+
\w+
соответствует 1 ко многим символам.
\w
похож на [a-zA-Z0-9_]
^
изображает начало строки
О вашем регулярном выражении
Ваше регулярное выражение (.*)?[ ]
должно быть ^(.*?)[ ]
или ^(.*?)(?=[ ])
, если вы не хотите пробела
Не нужно <<20 > .
string[: string.find(' ')]
Если вы хотите чувствовать себя особенно хитрым, вы можете написать это так:
(firstWord, rest) = yourLine.split(maxsplit=1)
Это должно принести лучшее из обоих миров:
maxsplit
при разделении с любым пробеломЯ как бы влюбился в это решение и в его возможности распаковки, поэтому мне пришлось поделиться им. :)
Вам не нужно регулярное выражение для разделения строки на пробелы:
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
Вы можете сделать что-то вроде:
print line.split()[0]
брах вещь хахахахахахахаххаахахахаххр ты неудачник м8