我如何从Python Regex组内剥离空格



是否可以在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()中使用lambdareplace()

re.sub(r'[(.*?)]', lambda m: m.group(1).replace(" ", "_"), text)

输出:

select table_name.column_name from table_name

代码演示

您可以使用函数.replace(要替换为要替换的内容(。

最新更新