Python:文字列の置換--replace()、teaslate()、re.sub

1つ、replace()

replace() このメソッドは、文字列内の古い(古い文字列)を新しい(新しい文字列)に置き換えます.3番目のパラメータmaxが指定されている場合、置き換えは最大回数を超えません

str.replace(old, new[, max])

スタイル: 

a = 'Hello,world!'
print(a.replace('l','Q'))  # 把l换成Q 
print(a.replace('abcdefghi','0123456789'))  # 想把字符串中的a到i替换成0-9
print(a.replace('world','apple'))  # 把word替换为apple

 結果:

HeQQo,worQd!
Hello,world!  # 很明显,第二个没有执行(或者说没有替换)
Hello,apple!

理由:このreplace()関数は、文字列内の1つの文字を置き換えることができ、連続する文字を置き換えることもできますが、文字置換マップを生成することはできません。

 

2、translate()

translate()この関数にはPythonも付属しています。replace()関数との違いは、ここではstr.maketrans関数を使用してテーブルを作成することです。さまざまなパラメーターを使用できますが、3つのArgumentsstrが必要です。

maketrans( ''、 ''、del)  

最初のパラメーターは置き換えられる文字、2番目のパラメーターは置き換えられる文字、3番目のパラメーターは削除される文字です

使用する:

stu_name = "学生1"
stu_name.translate(str.maketrans('', '', digits)) 
print(stu_name)  # 输出: 学生
import string
a = 'Hello,world!'
remove = string.punctuation  # 返回所有标点符号
table = str.maketrans('abcdefgh','01234567',remove)
print(a.translate(table))  # 输出:H4lloworl3

 

三、re sub()

これはreライブラリの関数であり、そのプロトタイプはre.sub(pattern, repl, string, count)

最初のパラメーターは正規表現に置き換えられるパラメーター、2番目のパラメーターは置き換えられた文字列、3番目のパラメーターは入力文字列、4番目のパラメーターは置き換えの数を示します。デフォルトは0です。これは、すべての一致が置き換えられることを意味します。

例: 

import re
a = 'Hello,world! HaHa'
print(re.sub(r'[A-Z]', '8', a))  # 8ello,world! 8a8a
print(re.sub(r'[A-Z]', '8', a, 2)) # 8ello,world! 8aHa 替换前2个

 

 

 

 

 

おすすめ

転載: blog.csdn.net/weixin_38676276/article/details/107515545