是否可以在Python中另一个Regex子内部在组上执行一条正则sub?我想卸下所有方括号,并用下划线更换方括号内的所有空间。我可以毫无问题地卸下方括号,但是我不知道如何从支架内的那些文本中删除空间(而不删除方括号外的空间(。
foo = 'select [table name].[column name] from [table name]'
re.sub('[(.*?)]', re.sub('s', '_',r'1'), foo)
导致:
"选择表名。
我要实现的输出是:
'select table_name.column_name从table_name'
我想做的是可能的吗?
您可以在re.sub()
中使用lambda
和replace()
。
re.sub(r'[(.*?)]', lambda m: m.group(1).replace(" ", "_"), text)
输出:
select table_name.column_name from table_name
代码演示
您可以使用函数.replace(要替换为要替换的内容(。