テービーテックのデータサイエンス

未経験リケジョがゼロからデータサイエンティストを目指す姿を記す奮闘記です。2019/12/05文系出身者が共同で更新を開始

TAG index

▲本日の関数==re.sub()==

f:id:TBT_matsu:20200402152259p:plain

本日の関数:re.sub()

こんにちは。
テービーテックの村松です。

本日ご紹介する関数は「re.sub()」。
※※これまでご紹介した関数はこちら※※

どんな関数?

テキスト内の指定する条件に合った文字を任意の文字列に置換することができます。

引数は?
re.sub(pattern, repl, string, count=0, flags=0)

よく指定する引数は、

  • pattern:置換の対象となる条件(正規表現パターン)
  • repl:何に置換するか指定(文字列)
  • string:処理対象の文字列
  • count:出現したパターンを置換する最大の回数(デフォルトは0=条件に合った全てを置換)

使ってみよう

input

適当な文字列を用意します。今回は本ブログのTOPページのURLです。

sentence = 'https://ds-blog.tbtech.co.jp/'
コード

指定の文字を置換してみましょう。

#aからzのアルファベットを〇に置換します。
re.sub('[a-z]', '〇', sentence)

##結果
'〇〇〇〇〇://〇〇-〇〇〇〇.〇〇〇〇〇〇.〇〇.〇〇/'

「××以外」という指定もよく使いますね。

#aからzのアルファベット以外を〇に置換します。
#指定文字の前に「^」を付けます。
re.sub('[^a-z]', '〇', sentence)

##結果
'https〇〇〇ds〇blog〇tbtech〇co〇jp〇'

正規表現操作は色々な指定ができます。
こちらのドキュメントをご参照ください。

また、引数countを指定することで置換する回数を制限することもできます。

#aからzのアルファベットを5回〇に置換します。
re.sub('[a-z]', '〇', sentence, 5)

##結果
'〇〇〇〇〇://ds-blog.tbtech.co.jp/'

自然言語処理の前処理で使い勝手が良さそうですね。
今後も活用していきたいです。

もっと詳しく!

ドキュメントへ!!