我试图用什么都不替换字符串中括号的内容。我现在使用的代码是这样的:
tstString = "OUTPUT:TRACK[:STATE]?"
modString = re.sub("[\[\]]","",tstString)
当我打印结果时,我得到:
OUTPUT:TRACK:STATE?
但我希望结果是:
OUTPUT:TRACK?
我该怎么做?
答案 0 :(得分:0)
我猜这个会很好。 Regexp现在匹配一些字符串Inside []
。 ?
之后不是*
。它使*非贪婪
import re
tstString = "OUTPUT:TRACK[:STATE]?"
modString = re.sub("\[.*?\]", "", tstString)
print modString
答案 1 :(得分:0)
您的正则表达式"[\[\]]"
说出以下任何字符:" [","]"'。
但是你想删除方括号之间的内容,所以你应该使用像r"\[:\w+\]"
这样的东西。它表示' [,然后:,然后是一个或多个字母数字字符,然后是'。
并且,在使用正则表达式时,请始终在引号前使用原始字符串(r
),以避免与Python字符串处理相关的有趣事情。