使用python从嵌套字符串中选择特定字符串

如何从此错误字符串中选取错误消息:

[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting from a character string to uniqueidentifier. (8169) (SQLExecDirectW)

我只需要给出错误:

Conversion failed when converting from a character string to uniqueidentifier.

给用户。我该怎么做?


拉风的咖菲猫
浏览 116回答 3
3回答

三国纷争

您可以使用类似的东西s = "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting from a character string to uniqueidentifier. (8169) (SQLExecDirectW)"print(s[s.rfind(']')+1: s.find('(')])

汪汪一只猫

如果要在较长的文本中找到此模式的多个实例,@mohammedwazeems的解决方案将不再有效。在这种情况下,请使用正则表达式:import reregex = r".*](.+?)[(]"   # avoid all until last ] that is followed by captured anything lazyly                         # that is followed by an open (log_file = """some text that is fine[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting from a character string to uniqueidentifier. (8169) (SQLExecDirectW)more ok text[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Fix me error. (8169) (SQLExecDirectW)more okish text"""matches = re.finditer(regex, log_file, re.MULTILINE)for match in matches:    if len(match.groups())>0:        print ( match.group(1))指纹:Conversion failed when converting from a character string to uniqueidentifier. Fix me error.在这里测试:https://regex101.com/r/GPWs2a/1

慕慕森

试试这个:error = '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting from a character string to uniqueidentifier. (8169) (SQLExecDirectW)'error[error.rfind(']')+1:error.find('(')]这应该给出:'Conversion failed when converting from a character string to uniqueidentifier. '
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python