我想将[1-2]
替换为 1 ,将[3-4]
替换为 3 ,将[7-8]
替换为 7 ,[2]
2 ,依此类推。
例如,我想使用以下字符串:
db[1-2].abc.xyz.pqr.abc.abc.com
db[3-4].abc.xyz.pqr.abc.abc.com
db[1].abc.xyz.pqr.abc.abc.com
xyz-db[1-2].abc.xyz.pqr.abc.abc.com
并将它们转换为
db1.abc.xyz.pqr.abc.abc.com
db3.abc.xyz.pqr.abc.abc.com
db1.abc.xyz.pqr.abc.abc.com
xyz-db1.abc.xyz.pqr.abc.abc.com
答案 0 :(得分:4)
您可以使用正则表达式:
^(.*)\[([0-9]+).*?\](.*)$
并将其替换为:
$1$2$3
这是正则表达式的作用:
^ 匹配字符串
的开头 (。*)可以任意次数匹配任何字符,也是第一个捕获组
\ [匹配字符[字面意思为 ([0-9] +)匹配任意数字1次或更多次,也是第二个捕获组
。*?会在任何时候匹配任何字符,但会尝试找到最小的匹配 \] 匹配字符]字面意思为 (。*)可以任意次数匹配任何字符 $ 匹配字符串的结尾
将其替换为$1$2$3
,您将其替换为第一个捕获组中的文本,然后是第二个捕获组中的文本,然后是第三个捕获组中的文本。
答案 1 :(得分:-2)
import re
def fixString(strToFix):
groups = re.match("(.*)\[(\d*).*\](.*)", strToFix).groups()
return "%s%s%s" % (groups[0], groups[1], groups[2])