Python 为具有重复实例的子字符串定义正则表达式模式时出现问题
我对RegEx比较陌生,一直在阅读各种教程,但很难理解如何组合我需要的模式 目前,我有一个SQL字符串,其中包含此模式的重复实例:Python 为具有重复实例的子字符串定义正则表达式模式时出现问题,python,sql,regex,Python,Sql,Regex,我对RegEx比较陌生,一直在阅读各种教程,但很难理解如何组合我需要的模式 目前,我有一个SQL字符串,其中包含此模式的重复实例: ,coalesce(column1,null) AS table_name.column1 table\u name可以是任何名称,因为整个SQL代码中涉及多个表。我试图做的是从该模式的每次出现中消除表\u name。我在想,只要我能将的位置识别为和,那么中间的字符就可以替换为“” 我的方法会不正确吗?我只会对以下内容进行全局替换: \bAS\s*\S+?\.(\
,coalesce(column1,null) AS table_name.column1
table\u name
可以是任何名称,因为整个SQL代码中涉及多个表。我试图做的是从该模式的每次出现中消除表\u name
。我在想,只要我能将的位置识别为
和
,那么中间的字符就可以替换为“”
我的方法会不正确吗?我只会对以下内容进行全局替换:
\bAS\s*\S+?\.(\S+)
并使用第一个捕获组作为替换
示例脚本:
inp = ",coalesce(column1,null) AS table_name.column1"
out = re.sub(r'\bAS\s*\S+?\.(\S+)', '\\1', inp)
print(out)
这张照片是:
,coalesce(column1,null) column1
请注意,这个正则表达式搜索相当健壮,因为SQL中的as
关键字主要用于标记别名。这对您有用吗?