- 2018-8-21
- pythonプログラミング, 正規
- python, 正規表現, 置換
- 【Python】正規表現を使って文字列を置換える方法まとめ はコメントを受け付けていません
この記事では正規表現を使って文字列の一部を置き換えたり
削除したりする方法について解説していきます。
文字列について詳しく知りたい方は
先に以下の記事をご覧ください。
⇒python特有の文字列操作まとめ
⇒【python】printで文字列を改行する方法と改行しない方法
⇒【python入門】文字列を分割したり抽出したりする方法
⇒【Python】簡単に文字列を検索する3つのメソッドと置換について解説
⇒【Python】文字列を結合・抽出したり繰り返したりする方法
⇒【Python】文字列を削除・長さを調べる・数値を文字列に変換する方法
それでは本題に入っていきましょう。
目次
【Python】正規表現を使って文字列の一部を削除する方法
文字列を置換する方法と文字列を削除する方法は
正規表現の場合、ほとんど同じです。
とはいえ、どちらかというと
文字列を削除する方法の方が、
簡単だと個人的には思っています。
なので、まずは正規表現を使って文字列を削除する方法から
入っていきたいと思います。
それでは例題1を一緒にやってみましょう。
#例題1(正規表現を使って文字列を削除) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('ブルブル', '', x) print(x)
例題1ではまず
import re
から始まっています。
import reと書くことによって
正規表現を使った表現をこれから始めていくことを
Pythonに伝えています。
そんな感覚で大丈夫です。
次に
x = '美女がロシアの極寒地獄の中でブルブル震えていた。'
ここは『美女がロシアの極寒地獄の中でブルブル震えていた。』
という文字列を変数xに代入しただけです。
代入についてはコチラの記事で詳しく解説しています。
⇒【Python入門】変数の代入についてわかりやすく解説
で、ここが正規表現のキモですね。
x = re.sub('ブルブル', '', x) print(x)
中でもここ、
re.sub('ブルブル', '', x)
re.sub()を使うことで文字列の一部を置換することができます。
ここでは
re.sub('ブルブル', '', x)
となっていますね。
これは『ブルブル』という文字列を削除しなさいという意味になります。
re.sub('削除したり置換したい元の文字列', '削除するなら無記入で置換するなら文字列', 狙った変数)
という式になります。
それから
print(x)によって変数xの中身が表示されます。
実行すると、
『美女がロシアの極寒地獄の中で震えていた。』
となり、見事に『ブルブル』という文字列が削除されています。
【Python】正規表現を使って文字列の一部を置換する方法
続いて正規表現を使って文字列の一部を置換する方法について解説します。
ただ、先ほどの文字列の一部を削除する方法と
コードの書き方はほとんど同じです。
なので、簡単に解説していきますね。
#例題2(正規表現を使って文字列の一部を置換) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('ブルブル', 'ガタガタ', x) print(x)
例題2ではブルブルという文字列をガタガタに
置換しただけです。
ここがポイントですね。
x = re.sub('ブルブル', 'ガタガタ', x)
実行すると
『美女がロシアの極寒地獄の中でガタガタ震えていた。』
と表示されます。
次、理解を深めるために
もう一つ例題をやってみましょう。
『ロシア』という文字列を『南極』
という文字列に置換してみてください。
#例題3(正規表現を使って文字列の一部を置換) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('ロシア', '南極', x) print(x)
例題3を実行すると
確かに『美女が南極の極寒地獄の中でブルブル震えていた。』となり
ロシアが南極に置換されていますね。
【Python】正規表現を使って文字列の一部を置換削除する方法応用編1
ここまでで学んできた正規表現の知識を
さらに発展させていきましょう。
#例題4([]で囲めば複数の文字列を一度に削除できる) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('[ロシアのブルブル中]', '', x) print(x)
例題4は例題1の発展形です。
例題1は
#例題1(正規表現を使って文字列を削除) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('ブルブル', '', x) print(x)
でしたね。
例題1と例題4の違いは
例題4は
x = re.sub('[ロシアのブルブル中]', '', x)
ですが
例題1は
x = re.sub('ブルブル', '', x)
です。
‘[ロシアのブルブル中]’とこんな文字列であっても
[]で囲むことで、変数xに入った文字列に該当するものがあれば
一気に削除することができるんです。
x = re.sub('[ロシアのブルブル中]', '', x)
によって、黄色のところだけが削除されます。
x = ‘美女がロシアの極寒地獄の中でブルブル震えていた。’
実行すると、
『美女が極寒地獄で震えていた。』
となります。
こんな感じで削除したい文字列を[]で囲むことで
連続した文字列でなくても削除することができます。
【Python】正規表現を使って文字列の一部を置換削除する方法応用編2
さっそく例題5をご覧ください。
#例題5(^を使うことで囲った文字を残すことができる) import re x = '美女がロシアの極寒地獄の中でブルブル震えていた。' x = re.sub('[^ブルブルが美女が。]', '', x) print(x)
大事なのは
x = re.sub('[^ブルブルが美女が。]', '', x)
です。
今回の初登場は『^』の部分です。
x = re.sub(‘[^ブルブルが美女が。]’, ”, x)
です。
これは否定を意味します。
x = re.sub(‘[ブルブルが美女が。]’, ”, x)
と『^』がないと、『ブルブル』『が『美女』『。』
といった文字列を削除します。
ですが、『^』によって
『ブルブル』『が『美女』『。』以外の文字列が削除されます。
実行すると
『美女がブルブル。』
と表示されます。
以上で正規表現を使って文字列を削除したり
置換したりする方法についての解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。