• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:python 正規表現)

Python正規表現でひらがな・カタカナの一文字を削除する方法

このQ&Aのポイント
  • Pythonの正規表現を使用して、テキストデータからひらがなやカタカナの一文字を削除する方法を紹介します。
  • テキストデータに含まれる単語のうち、ひらがなやカタカナの一文字を削除することで、テキストの内容を編集することができます。
  • 具体的なコード例として、Pythonのreモジュールを使用して正規表現による文字置換を行い、ひらがなやカタカナの一文字を削除する方法を解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

\b[ぁ-ゞァ-ヾ]\b ですかね。

qwewqwe
質問者

お礼

ありがとうございます 参考にさせていただきました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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文のみなので、別で行が追加される分にはかまいません。) よろしくお願いします。

  • Pythonの構文作成について。

    最近、プログラミングを身に着けようとpythonを選んで初めているのですが、 プログラミングが全くの初めてでして。 プログラムの組み方が全く思い浮かべることができず、 一度フローチャートなどに書き起こしてみるも、 いざやってみるとうまく分解できず、四苦八苦しています。 利用している教材は「"やさしいpython"著者 高橋麻菜」に」なります。 「簡単なしりとりゲーム」を作ってみるということをしてみてるのですが、 <要件としては> ・コンピュータが知っている単語をひらがなでリストに保持してその中から答える。 (中に持つ単語は いちご、ごりら、らっぱ、ぱんだ、だんす、すけーと、とけい、いか、かい→いちごに戻る) ・しりとりのルール通り、プレイヤーが「あきかん」のような最後に「ん」のつく言葉を入力した時は「んがつきました、あなたの負けです」と表示してしりとりの繰り返しを終了させる。 ・コンピュータが知っている単語の中に次の答えとして使えるものがなかった場合、「負けました。あなたの勝ちです」と表示してしりとりの繰り返しを終了したい。 ・しりとりのルールの中で「一度使われた単語を2回使ってはならない」は今回の内容には適用しない。そのため続く言葉を使い続けた場合、永遠に終わらないようにしたい ・空の文字列(プレイヤーが何も入力しないでreturnキーを押した)を入力されたとしてもプログラムがおかしくならないようにする。(何か文字を入れてくださいの表示を出す) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #しりとりをしましょう print ("しりとりをしましょう") ↓ #文字を入れてください int(input("文字を入れてください。")) if文で分岐を作って、for文やwhile文、continue、breakを使って組み立てるとうことは、なんとなくなのですが。 うまくいきません。何パターンか作り方はあると思いますが、 どう書いていけばよいのでしょうか。サンプル構文があればと思うのですが。

  • Python上での正規表現でどのように書けば?

    PHPで作ったプログラムをGAE(Google App Engine)/Python で作り替えています。 PHPの置換処理で、たとえば、以下の正規表現をPythonで書きたいのですが、どのようにすればいいでしょうか? mb_ereg_replace("無([いかきくけこ])","な\\1",$str); この質問は、別の言い方をすると次のようにもなります。 「Pythonで以下をひとつの正規表現で表現したい」 str = re.sub('無い','ない',str) str = re.sub('無か','なか',str) str = re.sub('無き','なき',str) str = re.sub('無く','なく',str) str = re.sub('無け','なけ',str) str = re.sub('無こ','なこ',str) どなたか、お分かりになる方、教えて頂ければと思います。

  • Python について質問です

    私はPythonの初心者です。 今Python でCSVのファイルを読んで数値だけ(数値以外に文字列や空白などがあります)を計算処理出来なくて困っています。教えて頂けませんか? 質問は、BB.csvというファイルの数値だけの合計と平均を計算したいです。 私のコードは以下です。 # coding: utf-8 import csv import re import string DATAFILE = 'BB.csv' class UnicodeDictReader(csv.DictReader): def __init__(self, f, fieldnames=None): csv.DictReader.__init__( self, f, fieldnames) def main(): total = 0 all_sum = 0 line_num = 0 with open(DATAFILE) as csvfile: reader = UnicodeDictReader(csvfile) for record in reader: # 値を数値で取得 A = int(record['38186']) B = int(record['38181']) C = int(record['38143']) item_total = A + B + C total = item_total all_sum += item_total line_num += 1 average = all_sum / reader.line_num print(" %d + %d + %d = %d " % ( A, B, C, total)) print(u"合計 %d " % all_sum) print(u"平均 %d " % average) if __name__ == '__main__': main() BB.csvは以下です、 38186,38181,38143 1,1,4 1,1,4 ,, ,, 2020,2020,2020 1412,1412,1412 625,625,625 75,75,75 75,75,75 75,75,75 75,75,75 4,4,4 4,4,4 4,4,4 7828,7828,7828 X,, 0,0,0 0,0,0 ○,, 0,0,0 0,0,0 0,0,0 ,,AAA 0,0,0 0,0,0 0,0,0 ,BBB, 0,0,0 0,0,0 0,0,0 ,, 0,0,0 ,, 0,0,0 0,0,0 ,, 0,0,0 0,0,0 750,750,750 400,400,400 400,400,400 ,, 0,0,0 0,0,0 0,0,0 ,, 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 6,6,6 6,6,6 18,18,18 18,18,18 18,18,18 18,18,18 18,18,18 16,16,16 16,16,16 6,6,6 6,6,6 18,18,18 18,18,18 18,18,18 18,18,18 18,18,18 11,11,11 11,11,11 11,11,11 3,3,3 3,3,3 3,3,3 3,3,3 4,4,4 4,4,4 3,3,3 3,3,3 16,16,16 16,16,16 16,16,16 14,8,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 8,14,11 15,15,15

  • 単語/用例の登録がなくて、単語の登録しかありません

    はじめて質問させていただきます。よろしくお願いします。 今Vistaを使っていますが、ツールに単語/用例の登録がなくて、単語の登録しかありません。 あらゆる手段をつかって単語/用例の登録になるよう設定しましたが、ダメでした。 じつは、HTMLタグを単語登録したいのです。そのためには語句というタブが必要で、そこに入力しな いとHTMLタグは登録できないのです。どうしてもHTMLタグを登録したいのですが、今持ってる単語の登録では「単語」と「よみ」しか出てこなくてタグまでは登録できないのです。 むりやり登録しようとすると、「読みに指定できる文字は、ひらがな、英数字、記号です。」というガイドが出てきてしまい、タグは入力できません。 なにかいい方法を知っている方がいらっしゃれば、アドバイスよろしくお願いします。<m(__)m>

  • MS-IME2002とATOK14のどちらが、良いでしょうか。

    MS-IME2002とATOK14のどちらが、良いでしょうか。 導入のやり方を教えてください。 サイトを見ても分かりません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=142882 と似てるんですけど、回答をいただけなかったので、 改めて質問を出させていただきました。 ウィンドゥズ98、MS-IME2000、単語用例の登録の読みの空欄に、 文字を記入できません。語句で、右クリックするとヘルプが出ます。 この問題は、自分で、解決できました。 ウィンドウズ2000、MS-IME2000です。Aというアルファベットのまま、 クリックしても、ひらがなに変わりません。 そのままですと、英語なので、半角全角を押すと、 文字は、Aというアルファベットのままですけど、ひらがな、漢字を打てるようになります。単語用例の登録、プロパティを見ようとクリックしても、動きません。 まれに、動くこともあります。 MS-IME2002とATOK14では、ローマ字入力で、 ひらがなから、変換するときに、 英語の正しいスペルに 変わる設定があるそうなので、3台とも、変えたいと思っています。

  • pythonの正規表現、全角カタカナの指定。

    下記のような正規表現で「全角カタカナの色名(アルファベットの色名)」で書かれている文字にマッチするものを作りたいのですが、カタカナの濁音にマッチしてくれません。 iro=re.compile("[ァ-ヴー×]+\([A-Z/]+\)|カラーなし") 例 ベリー(BERRY)/ ブラック(BK)/ ブルー(BL)/ フォレスト(FOST)/ グリーン(GN)/ グレー(GY)/ ピンク(PK)/ パープル(PU)/ タンジェリン(TGR) ↓ リー(BERRY)ラック(BK)ブルー(BL)グリーン(GN)グレー(GY)ンク(PK)ープル(PU)タンジェリン(TGR) このように中途半端にパブべが除かれてマッチします。いったいどういうことなんでしょうか?

  • “記号”の変換内容が記憶されません。

    “記号”の変換内容が記憶されません。 最近、Windows 7に乗り換えたのですが、変換内容が記憶されません。 ひらがなで単語や文章を入れて(漢字に)変換した内容なら、 次回おんなじ内容を打ち込んで変換した時も、おんなじように変換できる(記憶される)のですが、 “記号”の変換内容だけは記憶されないんです。 例えば、「・・・」を変換して「…」にしても、 次回同様に入力した際には、 一発で「…」に変換できないんです。(半角の「・・・」になってしまう。) IMEの辞書登録も試しましたが、無理でした。 辞書登録でも、固有名詞などは登録したらちゃんと変換できるのに、 「読み」と「語句」の“両方が”記号だった場合には、やはり記憶されません。 例1)読みを「・・・」、語句を「…」に設定した場合。 例2)読みを「・・」、語句を「‥」(二点リーダー)に設定した場合。 例3)読みを「・・・・・・」、語句を「……」に設定した場合。 なぜこう言った“記号だけが”変換できないのかわかりません。 前に使っていたVistaでは、前述のような記号もちゃんと変換できました。 説明が下手で申し訳ないのですが、わかる方、回答よろしくお願いします。

  • 正規表現 なにを表現しているのか

    メタキャラクタを中心に、 ↓は何を表現しているのか教えてください(-_-;) 1)</?(HTML|HEAD|BODY|FONT)> 2)\[RFC[0-9]{4}\] 初心者なので、まったくわかりません;; よろしくお願いします;;

  • 正規表現について

    C言語版の鬼車ライブラリを利用して、ある検索プログラムを作成したいのですが、 1点質問です。 以下のような例文があるおします。 (例) -- 最初の試験、二番目の試験、三番目の試験、最後の試験 -- onig_search()を使用して上記から”試験”のすべての検出箇所を調べたいのですが、 パターンに”試験”を指定してonig_search()をコールしても最初の1件目のみしか 検出しません。 特殊なオプションが必要なのでしょうか? それとも、パターン(正規表現)の書き方が誤っているのでしょうか? 問題が解決せず非常に困っています。 どなたか、解決策をお持ちの方は知恵を貸してください。

このQ&Aのポイント
  • EP-879ABでヘッドクリーニングをしても終わらない問題について相談です。
  • クリーニング中 終了するまで(約3分間)電源を切らないでくださいと表示されたまま一時間以上経っても終わりません。
  • どうすればヘッドクリーニングを完了させることができますか?
回答を見る

専門家に質問してみよう