-1

test.txt で:

quiet confidence^_^
want:P
(:let's start

コード:

import re
file  = open('test.txt').read()
for line in file.split('\n'):
    line = re.findall(r"[^\w\s$]+|[a-zA-z]+|[^\w\s$]+", line)
    print " ".join(line)

結果は次のとおりです。

quiet confidence^_^
want : P
(: let ' s start

特殊文字のグループを文字列から分離しようとしましたが、まだ正しくありません。なにか提案を?

予想された結果:

quiet confidence ^_^
want :P
(: let's start
4

1 に答える 1

3

@interjayが言ったように、単語と見なすものと「特殊文字」とは何かを定義する必要があります。それでも、2 つの別々の正規表現を使用して、単語とそうでないものを見つけます。

word = re.compile("[a-zA-Z\']+")
not_word = re.compile("[^a-zA-Z\']+")

for line in file.split('\n'):
    matched_words = re.findall(word, line)
    non_matching_words = re.findall(not_word, line)
    print " ".join(matched_words)
    print " ".join(non_matching_words)

スペース\s+は非単語としてグループ化されることに注意してください。

于 2013-06-27T17:10:05.903 に答える