如何获取字符串中的第一个单词

时间:2012-12-06 18:38:12

标签: python regex

文字是:

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

6 个答案:

答案 0 :(得分:123)

正则表达式对此没有必要。只需使用some_string.split(' ', 1)[0]some_string.partition(' ')[0]

答案 1 :(得分:10)

使用此正则表达式

^\w+

\w+匹配1到多个字符。

\w[a-zA-Z0-9_]

类似

^描述字符串的开头


关于您的正则表达式

如果您不想要空格,您的正则表达式(.*)?[ ]应为^(.*?)[ ]^(.*?)(?=[ ])

答案 2 :(得分:7)

不需要regexstring[: string.find(' ')]

答案 3 :(得分:6)

如果你想要特别狡猾,你可以这样写:

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

这应该是两个世界中最好的:

我有点爱上了这个解决方案以及它的一般解包功能,所以我不得不分享它。 :)

答案 4 :(得分:3)

您不需要正则表达式在空格上拆分字符串:

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

答案 5 :(得分:2)

你应该这样做:

print line.split()[0]