python截取字符串,python3截取字符串中某部分
有个地方,我很笨,但是找不到。
正在开放式数据库连接性上使用一种数据库系统数据库运行计算机编程语言脚本。您将要从数据库的异常消息中提取有意义的部分。这是原始消息,为了提高可读性,添加了换行符。
(-2147352567,出现异常 . ,)0, microsoftoledbproviderforodbcdrivers ,
错误:chargenotinacorrectstatustodelete;\ n执行查询时出错,
无,0,-2147467259),无)
请注意,这个字符串有两组括号。首先,我会找到外部的位置切成薄片。这显示了预期的结果:
-2147352567,出现异常,0, microsoftoledbproviderforodbcdrivers ,
错误:chargenotinacorrectstatustodelete;\ n执行查询时出错,
无,0,-2147467259),无
然后,就我所知,我用了同样的代码删除了除另一个括号和括号以外的所有内容。得到这样的结果:
(0," microsofttoledbproviderforodbcdrivers ",
错误:chargenotinacorrectstatustodelete;\ n执行查询时出错,
无,0,-214746725
即使以相同的方式使用查找()方法的结果,也在要打开的括号位置添加了两次打开的括号作为片的起点,但打开的括号仍在此处。
这是代码:
打印(错误字符串)。
openparenlocation=errorstring。查找(
coseparenlocation=errorstring。rfind’)
stripped string=errorstring[openparenlocation 1:closeparenlocation]
openparenlocation=剥离的字符串。查找((
closeparanlocation=剥离的字符串。rfind’)
db errorstring=errorstring[openparenlocation 1:closeparenlocation]
打印(条纹字符串)
print(()、format)、openparenlocation、closeParenLocation)
打印(数据库错误字符串) )。
这是原始输出,没有添加换行符:
(-2147352567,出现异常,)0, microsoftoledbproviderforodbcdrivers ,错误3360 chargenotinacorectstatal
-2147352567,出现异常,0, microsoftoledbproviderforodbcdrivers ,错误3360 chargenotinacorectstature
36,191
(0, microsoftoledbproviderforodbcdrivers ,错误:chargenotinacorrectstatustodelete;\ n执行查询时出错,无,0,-214746725
使用更小字符串的测试代码可以正常工作。
测试字符串= (ABC (def ) ghij)。
openparenlocation=测试字符串。查找((
coseparenlocation=测试字符串。rfind’)
剥离的测试字符串=测试字符串[openparenlocation 1:closeparenlocation]
openparenlocation=剥离的测试字符串。查找(())。
closeparanlocation=剥离的测试字符串。rfind’)
最终测试字符串=剥离的测试字符串[openparenlocation 13360 closeparenlocation]
非常感谢。
解决方案
看起来像这项工作:
db errorstring=errorstring[openparenlocation 1:closeparenlocation]
相反,它将:
b errorstring=stripped string[openparenlocation 1:closeparenlocation]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。