chi*_*tra 3 python regex string
python中是否有一种简单的方法可以用另一个替换倍数字符?
例如,我想更改:
name1_22:3-3(+):Pos_bos
Run Code Online (Sandbox Code Playgroud)
至
name1_22_3-3_+__Pos_bos
Run Code Online (Sandbox Code Playgroud)
因此,基本上全部替换"(",")",":"为"_"。
我只知道这样做:
str.replace(":","_")
str.replace(")","_")
str.replace("(","_")
Run Code Online (Sandbox Code Playgroud)
您可以使用re.sub一种模式替换多个字符:
import re
s = 'name1_22:3-3(+):Pos_bos '
re.sub(r'[():]', '_', s)
Run Code Online (Sandbox Code Playgroud)
输出量
'name1_22_3-3_+__Pos_bos '
Run Code Online (Sandbox Code Playgroud)
使用翻译表。在Python 2中,maketrans在string模块中定义。
>>> import string
>>> table = string.maketrans("():", "___")
Run Code Online (Sandbox Code Playgroud)
在Python 3中,它是一个str类方法。
>>> table = str.maketrans("():", "___")
Run Code Online (Sandbox Code Playgroud)
在这两种方法中,表均作为参数传递给str.translate。
>>> 'name1_22:3-3(+):Pos_bos'.translate(table)
'name1_22_3-3_+__Pos_bos'
Run Code Online (Sandbox Code Playgroud)
在Python 3中,您还可以将单个dict映射输入字符传递给输出字符maketrans:
table = str.maketrans({"(": "_", ")": "_", ":": "_"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |