如何在Python中进行多重替换?
在这个帖子中提到并回答了我的问题,我需要把'['替换成'[[]',把']'替换成'[]]'。
我试着用s.replace()来做,但因为这个方法不会直接在原来的字符串上修改,所以我运行的代码得到了错误的结果。
path1 = "/Users/smcho/Desktop/bracket/[10,20]" path2 = path1.replace('[','[[]') path3 = path2.replace(']','[]]') pathName = os.path.join(path3, "*.txt") print pathName --> /Users/smcho/Desktop/bracket/[[[]]10,20[]]/*.txt
- 我该如何在Python中进行多重替换呢?
- 或者我该如何同时替换'['和']'呢?
6 个回答
1
这里还有一个通用的 Python 多重替换的方法:单次多重替换
3
我会使用这样的代码:
path = "/Users/smcho/Desktop/bracket/[10,20]"
replacements = {"[": "[[]", "]": "[]]"}
new_path = "".join(replacements.get(c, c) for c in path)
12
import re
path2 = re.sub(r'(\[|])', r'[\1]', path)
解释:
\[|]
这个表达式会匹配一个括号(无论是开括号还是闭括号)。把它放在括号里,就会把它捕捉到一个组里面。然后在替换的字符串中,\1
就会被这个组里的内容替换掉。