例えば
!@#123myname --> myname
!@#yourname!@#123 --> yourname!@#123
「すべての英数字を削除する最もpythonicな方法」の例はたくさんありますが、最初のアルファベット文字までの非アルファベット文字のみを削除したい場合、これを行う最良の方法は何ですか?
whileループでそれを行うことができますが、より良いpythonソリューションを探しています
例えば
!@#123myname --> myname
!@#yourname!@#123 --> yourname!@#123
「すべての英数字を削除する最もpythonicな方法」の例はたくさんありますが、最初のアルファベット文字までの非アルファベット文字のみを削除したい場合、これを行う最良の方法は何ですか?
whileループでそれを行うことができますが、より良いpythonソリューションを探しています
を使用するだけstr.lstrip
です。
文字列の左側から削除する文字を含む文字列を受け取り、それらの文字が出現する順序に関係なく削除します。例えば:
s = "!@#yourname!@#"
print s.lstrip('@!#') # yourname!@#
先頭の英数字以外の値を削除する場合:
while not s[0].isalnum(): s = s[1:]
先頭のアルファベット以外の文字のみを削除する場合:
while not s[0].isalpha(): s = s[1:]
サンプル:
s = '!@#yourname!@#'
while not s[0].isalpha(): s = s[1:]
print(s)
出力:
yourname!@#