如何从python正则表达式组

时间:2018-02-26 17:06:29

标签: python regex string

是否可以在python中的另一个正则表达式子组中对组执行正则表达式子?我想删除所有方括号并用下划线替换方括号内的所有空格。我可以毫无问题地删除方括号,但我无法弄清楚如何从括号内的那些文本块中删除空格(不删除方括号外的空格)。

foo = 'select [table name].[column name] from [table name]'

re.sub('\[(.*?)\]', re.sub('\s', '_',r'\1'), foo)

结果:
'从表名'

中选择表名。列名

我想要实现的输出是:
'select table_name'column_name from table_name'

我正在尝试做什么?

2 个答案:

答案 0 :(得分:2)

您可以在lambda中使用replace()re.sub()

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

输出:

select table_name.column_name from table_name

Code demo

答案 1 :(得分:-1)

您可以使用.replace功能(要替换的内容,以及要替换的内容)。

相关问题