1

Python2.7を使用して正規表現を学習しています

次のような文(小文字とASCIIを想定)が与えられます:

input = 'i like: a, b, 007 and c!!'

入力文字列をトークン化するにはどうすればよいですか

['i', 'like', ':', 'a', ',', 'b', ',', '007', 'and', 'c', '!!']

オートマトンを記述し、遷移行列をC ++でコーディングできますが、これをPythonで実行したいと思います。

これらの異なるクラスのアルファベット、数字、句読点に一度に一致する正規表現を思い付くことができません。

私はここここでいくつかのstackoverflowの投稿を見てきましたが、それらのアプローチに完全には従いません。

私はこれをしばらくの間試しました、そして私はこれについてあなたの助けをいただければ幸いです。

PS:これは宿題の質問ではありません

4

1 に答える 1

3
>>> from string import punctuation
>>> text = 'i like: a, b, 007 and c!!'
>>> re.findall('\w+|[{0}]+'.format(punctuation),text)
['i', 'like', ':', 'a', ',', 'b', ',', '007', 'and', 'c', '!!']

これも機能しますが、英数字が見つからない場合は空白以外の文字が見つかります

>>> re.findall('\w+|\S+',text)
['i', 'like', ':', 'a', ',', 'b', ',', '007', 'and', 'c', '!!']
于 2012-04-21T15:33:32.800 に答える