2017-01-01 4 views
0

私はこのテキストを持っていますが、私はこれが大好きです!質問する?私は正規表現を使用してテキストをトークンに分割する際に特別なマークをつける

['I','love', 'this', 'but', 'I', 'have', 'a', 'question', 'to'] 

を取得しています。この正規表現を使用する場合は、現在私は、この正規表現を書いたものではないと私は正規表現について何も知らない

token_pattern = re.compile(r"(?u)\b\w+\b") 
token_pattern.findall(text) 

を使用して(例から理解しようとしたが、ちょうど与えましたアップしようとして)、今私はそれがどれ

['I','love', 'this', 'but', 'I', 'have', 'a', '!', 'question', 'to', '?'] 

このリストを返しますので、それは、質問と感嘆符を続け、またユニークなトークンにそれらを分割しますような方法でこの正規表現を変更する必要がありますどのように私がそれを行うことができるかに関する提案。

答えて

1

はこれを試してみてください:

token_pattern = re.compile(r"(?u)[^\w ]|\b\w+\b") 
token_pattern.findall(text) 

それはあまりにも、シングルマッチとして、すべての英数字以外の文字に一致します。

あなたが本当に唯一の問題と感嘆符は、あなたが

token_pattern = re.compile(r"(?u)[!?]|\b\w+\b") 
token_pattern.findall(text) 
に正規表現を変更することができますマークが必要な場合
関連する問題