2017-03-26 7 views
1

私はre.findall()関数を使用して、すべてのアルファベットの単語のセットを持つ文をテストしようとしています。ここに私のコード:正規表現:すべてのアルファベットの単語の集合のためのre.findall()

import re 
s = 'Hello from the other side' 
lst = re.findall('[:alpha:]', s) 
print (lst) 

私はコードを変更することができますか?

+0

あなたの言語は? – STF

+0

はpythonのように見える – mehulmpt

答えて

5

PythonはPOSIX :alpha:をサポートしていません。代わりに、これを書く:アルファベット文字に加えて、アンダースコアと数字を受け付け\w+

re.findall(r'[A-Za-z]+', s) 

の使用は避けてください。 \w+の唯一の本当の利点は、 re.LOCALEフラグで動作することです。

re.findall(r"[A-Za-z\-\']+", s) 

これはと「再発明する」「しません」などの言葉を受け入れます:

私は全体の単語を抽出するために自然な文章を解析すると、私は通常、ハイフンとアポストロフィができるように許可された文字を拡大します数字、アンダースコア、空白、引用符、およびその他の句読点を拒否します。

+0

're.findall(r" [ - 'A-Za-z] + "、s)'は同じように細かく読みやすく、 re.LOCALE'フラグ。 – Jan

関連する問題