# モジュール
import re
# サンプル文字列を用意する
s = '私はピアノが好きです。'
print(s)
# ピアノをドラムに置換する re.sub('')
s = re.sub('ピアノ', 'ドラム', s) # 引数の3つ目に元の文字列を指定する。
print(s)
# 複数の文字を置換する re.sub('[]')
s = '私は金色のトランペットと銀色のトランペットが好きです'
print(s)
s = re.sub('[金銀]', '黒', s) #複数指定はカッコ[ ]を使う
print(s)
# 複数の文字を置換する re.sub('[]')
s = '私は金色のトランペットと銀色のトロンボーンが好きです'
print(s)
s = re.sub('[トランペットトロンボーン]', 'アルトサックス', s)
print(s) # こういうのはできない。
# 指定した文字以外を置換する :ハット^を使う
s = '私はピアノが好きです。'
print(s)
# ピ と き 以外は X に置換する
s = re.sub('[^ピき]', 'X', s)
print(s)
# 繰り返し +
import re
s= '私はピアアアアアアアノが好きです。'
print(s)
# アの繰り返しを一つのアに置換する。
s = re.sub('ア+', 'ア', s)
print(s)
# ルビの除去 いままでの応用
import re
s = '私は大正琴【たいしょうごと】と和太鼓【わだいこ】が好きです'
print(s)
# 【たいしょうごと】【わだいこ】を消す:'【' ではじまって、文字が複数'*' あって '】'で終わる
s = re.sub('【[^】]', '', s)
print(s)
'''考え方
'【' # 文字としての左かっこの部分
'[]' # 複数文字を指定するためのかっこ
'^】' # その中に、文字としての右かっこ以外を指定するためのハットを使用する
ここまでで
'【[^】]' とかけた
'''
# 【たいしょうごと】【わだいこ】を消す:'【' ではじまって、文字が複数'*' あって '】'で終わる
s = re.sub('【[^】]', '', s)
print(s)
'''考え方
'【' # 文字としての左かっこの部分
'[]' # 複数文字を指定するためのかっこ
'^】' # その中に、文字としての右かっこ以外を指定するためのハットを使用する
ここまでで
'【[^】]' とかけた
'''
# さらに複数を繰り返すために +を入れると
s = '私は大正琴【たいしょうごと】と和太鼓【わだいこ】が好きです'
print(s)
s = re.sub('【[^】]+', '', s)
print(s)
"""
文字としての右カッコ '】' が現れるまで文字が消える
"""
# さいごに文字としての右カッコ '】'を消す
s = '私は大正琴【たいしょうごと】と和太鼓【わだいこ】が好きです'
print(s)
s = re.sub('【[^】]+】', '', s)
print(s)
# ちょっとなれるために例題をやってみましょう
import re
s = 'ペガサス【ぺがさす】に乗って、空【そら】を飛翔【ひしょう】する英雄【えいゆう】ペルセウス'
print(s)
s = re.sub('【[^】]+】', '', s)
print(s)