python-3.x re.sub无法删除此特定字符串的方括号[重复]

icomxhvb  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(60)

此问题在此处已有答案

How to strip square braces from string?(3个答案)
5天前关闭。
我有一个如下的字符串,我想用 re.sub 来删除方括号和逗号。但是它不起作用,我想知道为什么。基本上,问题是当我试图删除开头的方括号和逗号,或者同时删除开头和结尾的方括号时,没有一个字符会被删除。
请注意,这些都是非常简化的例子,我需要删除所有出现的许多不同的字符,所以请不要建议简单地使用多次迭代的replace或类似的东西。
使用Python 3.9.16,我尝试了以下所有方法:

import sys, re, os, time
print(re.sub('\[\]', '', "[Code [0]"))
print(re.sub('\\[\\]', '', "[Code [0]"))
print(re.sub('\]\[', '', "[Code [0]"))
print(re.sub('\\]\\[', '', "[Code [0]"))
print(re.sub('\[', '', "[Code [0]"))
print(re.sub('\\[', '', "[Code [0]"))
print(re.sub('\]', '', "[Code [0]"))
print(re.sub('\\]', '', "[Code [0]"))
print("")
print(re.sub('\[\]\,', '', "[1.2.3.4:5],"))
print(re.sub('\\[\\]\\,', '', "[1.2.3.4:5],"))
print(re.sub('\]\[\,', '', "[1.2.3.4:5],"))
print(re.sub('\\]\\[\\,', '', "[1.2.3.4:5],"))
print(re.sub('\[\,', '', "[1.2.3.4:5],"))
print(re.sub('\\[\\,', '', "[1.2.3.4:5],"))
print(re.sub('\]\,', '', "[1.2.3.4:5],"))
print(re.sub('\\]\\,', '', "[1.2.3.4:5],"))

字符串
我得到了这个后续输出:

[Code [0]
[Code [0]
[Code [0]
[Code [0]
Code 0]
Code 0]
[Code [0
[Code [0

[1.2.3.4:5],
[1.2.3.4:5],
[1.2.3.4:5],
[1.2.3.4:5],
[1.2.3.4:5],
[1.2.3.4:5],
[1.2.3.4:5
[1.2.3.4:5


最终目标是获得这种类型的字符串,其中删除了所有的括号和逗号:

Code 0

1.2.3.4:5


为什么会失败呢?我不是正则表达式的专业人士,但从我所看到和研究的来看,我认为它是有效的。

8dtrkrch

8dtrkrch1#

为正则表达式使用原始字符串,这样反斜杠字符将被传递到正则表达式引擎,而不是由字符串解析器处理。
要单独匹配任何字符,请将它们放在[]字符类中。

print(re.sub(r'[\[\],]', '', "[1.2.3.4:5],"))

字符串
指纹

1.2.3.4:5

相关问题