python 正規表現
http://okwave.jp/qa/q8693280.html
以前したこの質問を参考に正規表現を使ったプログラムを書いているのですが
以下のような3行からなるテキストデータ(例)から「ひらがな一文字」「かたかな一文字」の単語のみを除去したいと思っております。
(例)
単語 あ 語句 みち 空 ジャンプ
無理 ぃ お 暮らし ホーミング
石 防止 ゾ あなた
URLの質問を参考に(\bでは除去できなかったので)
for line in textfile:
line = re.sub(u'\s[ぁ-ゞ]\s', u' ', line)
line = re.sub(u'\s[ァ-ヾ]\s', u' ', line)
としたらうまく「ひらがな一文字」「かたかな一文字」を除去できました。
しかし、次の例のように一つ目の単語にこれらがきた場合手前にスペースがないので除去できません(4行目の「ま」が除去できない)
単語 あ 語句 みち 空 ジャンプ
無理 ぃ お 暮らし ホーミング
石 防止 ゾ あなた
ま 空白 みどり
だからといって
[ぁ-ゞ]\s
のようにすると、例えば一行目は「単語 語句 み空 ジャンプ」のように一文字でない単語の最後にひらがな・カタカナがくるとその部分を除去し、後ろの単語と結合してしまうという不具合がおきてしまいます。
扱うデータ的に、行の頭にスペースを入れるということはしたくありません。(はじめに入れて後から消すといっても正規表現に当てはまった行はスペースがなくなり、そうでないところはあるといったバラバラな状況が発生するのでそれもしたくありません)
これらをふまえて、うまく「ひらがな一文字」「カタカナ一文字」を除去する方法・正規表現はあるでしょうか。(今書いているプログラムはこのFor文のみなので、別で行が追加される分にはかまいません。)
よろしくお願いします。
お礼
そうかもしれません。今のところ有力候補ですね、 ご回答どうもありがとうございました。