Reg表达似乎应该是贪婪的,但表现得非贪婪

时间:2017-12-01 20:32:02

标签: python regex

我对此感到惊讶:

dfnew = df.rename(columns=lambda x: re.sub('.*(\d?\d\.\d).*','ass \\1', x ))

如果该列名为“Assignment 3.2”,则将其重命名为“ass 3.2”(好) 但是,如果该列被称为“Assignment 12.2”,则将其重命名为“ass 2.2”(不好)

我以为我把它设置得恰到好处。你能看到我错过的东西吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

dfnew = df.rename(columns=lambda x: re.sub('.* (\d+\.\d).*','ass \\1', x ))

答案 1 :(得分:0)

感谢您的帮助。这是解决方案:

dfnew = df.rename(columns=lambda x: re.sub('.*?(\d?\d\.\d).*','ass \\1', x ))