此问题在此处已有答案:
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
型
为什么会失败呢?我不是正则表达式的专业人士,但从我所看到和研究的来看,我认为它是有效的。
1条答案
按热度按时间8dtrkrch1#
为正则表达式使用原始字符串,这样反斜杠字符将被传递到正则表达式引擎,而不是由字符串解析器处理。
要单独匹配任何字符,请将它们放在
[]
字符类中。字符串
指纹
型