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

Python 在句点之后和下一个空格之前切片字符串,python,string,slice,Python,String,Slice,我正在循环使用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..' 每次循环时,我都想先捕获表名并存储它。所以在第一个周期(.)之后和下一个空间之前。上述示例的期望输出: TABLE_ABC 有什么想法吗?您可以在这里使用re.findall: inp = 'SELECT COL_1,

我正在循环使用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..'
每次循环时,我都想先捕获表名并存储它。所以在第一个周期(.)之后和下一个空间之前。上述示例的期望输出:

TABLE_ABC

有什么想法吗?

您可以在这里使用
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

您可以在纯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(' ', 1)[0])
# TABLE_ABC

或者
re.search(r'from\s+[^.]+\.(\s+),query,re.I)。第(1)组
谢谢大家。两者都很适合我的需要。我不认为名称中会有任何带点的列,但这是一个很好的注意事项