句点之后和下一个空格之前的切片字符串

问题描述 投票:-1回答:2

我正在遍历像这样的SQL语句(字符串)...

'SELECT COL_1, COL_2, COL_3 from SCHEMA_1.TABLE_ABC MINUS SELECT COL_1, COL_2, COL_3 from SCHEMA_2.TABLE_WXYZ..'

每次循环浏览时,我想捕获first表名并存储它。因此,在第一个句点(。)之后和下一个空格之前的所有内容。上面示例的所需输出:

TABLE_ABC

有什么想法吗?

python string slice
2个回答
2
投票

您也许可以在这里使用re.findall

inp = 'SELECT COL_1, COL_2, COL_3 from SCHEMA_1.TABLE_ABC MINUS SELECT COL_1, COL_2, COL_3 from SCHEMA_2.TABLE_WXYZ..'
table_name = re.findall(r'\bfrom\s+[^.]+\.(\S+)', inp, flags=re.IGNORECASE)[0]
print(table_name)

此打印:

TABLE_ABC

0
投票

您可以在纯Python中完成此操作,而无需导入任何模块:

query = 'SELECT COL_1, COL_2, COL_3 from SCHEMA_1.TABLE_ABC MINUS SELECT COL_1, COL_2, COL_3 from SCHEMA_2.TABLE_WXYZ..'    
print(query.split('.', 1)[1].split()[0])
# TABLE_ABC
© www.soinside.com 2019 - 2024. All rights reserved.