79

テキストは:

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
4

6 に答える 6

173

これには正規表現は不要です。some_string.split(' ', 1)[0]またはを使用するだけsome_string.partition(' ')[0]です。

于 2012-12-06T18:41:03.647 に答える
29

特にずる賢く感じたい場合は、次のように書くことができます。

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

これは、両方の世界から最高のものをもたらすはずです。

私はこのソリューションとそれが一般的なアンパック機能に恋をしたので、それを共有する必要がありました.

于 2016-10-18T12:58:18.867 に答える
10

この正規表現を使用

^\w+

\w+1 から複数の文字に一致します。

\wと類似しています[a-zA-Z0-9_]

^文字列の開始を示します


正規表現について

スペースが必要ない場合は、正規表現(.*)?[ ]^(.*?)[ ]orにする必要があります^(.*?)(?=[ ])

于 2012-12-06T18:39:17.400 に答える
7

は必要ありませんregexstring[: string.find(' ')]

于 2012-12-06T18:47:02.237 に答える
2

文字列を空白で分割するために正規表現は必要ありません。

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
于 2012-12-06T18:42:38.607 に答える