Ruby 文字列から指定した文字を削除する
Rubyで、deleteを使用して、文字列から指定した文字を削除するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
delete使い方
deleteを使用すれば、文字列から指定した文字を削除することが可能です。
# 文字列の値は変わらない
文字列.delete('削除する文字')
以下は、文字列から指定した文字を削除するサンプルコードとなります。
s = 'mebee'
p s.delete('e')
# "mmbmm"
p s
# "mebee"
s = 'aaabbbccc'
p s.delete('ab')
# "ccc"
p s
# "aaabbbccc"
delete!を使用すると、元の値も変更されます。
s = 'mebee'
p s.delete!('e')
# "mb"
p s
# "mb"
s = 'aaabbbccc'
p s.delete!('ab')
# "ccc"
p s
# "ccc"
また、deleteは範囲を指定して削除することも可能です。
s = 'abcdefg'
# cからeまでを削除
p s.delete('c-e')
# "abfg"
p s
# "abcdefg"
# aからeまででcからdを除いて削除
s = 'aaabbbcccdddeee'
p s.delete('a-e', "^c-d")
# "cccddd"
p s
# "aaabbbcccdddeee"
s = '12345671234567'
# 2から5までを削除
p s.delete('2-5')
# "167167"
p s
# "12345671234567"
1文字だけの削除であれば、マッチした全ての文字を指定した文字で置換できるgsubで空白を指定して削除することが可能です。
※「ab」は「a」と「b」の文字ではなく「ab」という文字列となる
s = 'mebee'
p s.gsub('e','')
# "mb"
p s
# "mb"
s = 'aaabbbccc'
p s.gsub('ab','')
# "aabbccc"
p s
# "aaabbbccc"
また、1文字だけ1つだけであれば指定したパターンにマッチした最初だけを指定した文字で置換できるsubを使用することも可能です。
s = 'abc'
p s.sub('b','')
# "ac"
p s
# "abc"
s = 'mebee'
p s.sub('e','')
# "mbee"
p s
# "mebee"
文字列「abc」から「c」だけを取り除きたい場合は、範囲を指定して文字を抽出できるsliceも使用することはk脳です。
s = 'abc'
#
p s.slice(0,2)
# "ab"
p s
# "abc"
-
前の記事
C# List(リスト)に値を追加する 2020.12.05
-
次の記事
javascript for-ofでサロゲートペア文字列も抽出する 2020.12.05
コメントを書く