Python

【Python】文字列のプレフィックス(接頭辞)とサフィックス(接尾辞)を削除する

この記事では、Pythonの文字列のプレフィックス(接頭辞)、またはサフィックス(接尾辞)を削除する方法を解説します。Python3.9で追加されたstr型のremoveprefix()メソッド、removesuffix()メソッドを使うことで削除した文字列のコピーを取得することができます。

プレフィックス(接頭辞)を削除する

文字列のプレフィックス(接頭辞)を削除するには、str.removeprefix()関数を使います。
※ Python3.9で追加

str.removeprefix(prefix, /)
引数の「/」は、これより前に記述されている引数を位置専用引数にします

文字列がprefix引数で始まる場合、string[len(prefix):]を返す。

s = 'Helloworld'

rps = s.removeprefix('Hello')
print(f'元: {s}, 削除後: {rps}')

実行結果

元: Helloworld, 削除後: world

文字列がprefix引数で始まらない場合、文字列のコピーがそのまま返される。

s = 'Helloworld'

rps = s.removeprefix('abc')
print(f'元: {s}, 削除後: {rps}')

実行結果

元: Helloworld, 削除後: Helloworld

また、prefixは位置専用引数なのでキーワード引数として指定するとTypeErrorとなる。

s = 'Helloworld'

rps = s.removeprefix(prefix='Hello')

実行結果

Traceback (most recent call last):
  File "/Users/user/Desktop/Python/test.py", line 3, in 
    rps = s.removeprefix(prefix='Hello')
TypeError: str.removeprefix() takes no keyword arguments

サフィックス(接尾辞)を削除する

文字列のサフィックス(接尾辞)を削除するには、str.removesuffix()関数を使います。
※ Python3.9で追加

str.removesuffix(suffix, /)

文字列がsuffix引数で終わる場合、string[:-len(suffix)]を返す。

s = 'Helloworld'

rss = s.removesuffix('world')
print(f'元: {s}, 削除後: {rss}')

実行結果

元: Helloworld, 削除後: Hello

文字列がsuffix引数で終わらない場合、文字列のコピーがそのまま返される。

s = 'Helloworld'

rss = s.removesuffix('abc')
print(f'元: {s}, 削除後: {rss}')

実行結果

元: Helloworld, 削除後: Helloworld
最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』