正则表达式,用于匹配每行中除最后2个字符串以外的所有字符串<python>

时间:2018-09-30 23:12:45

标签: regex

这是我要处理的数据。

The quick 12 apple
brown8 fox jumped 67 banana
sam 20 ace over 2.5 orange
the13 lazy dog 88.09 grapes

数据是一致的,每行末尾总是有一个数字和一个单词(例如12苹果)。我希望输出的内容是这样的:快棕色布朗狐狸跳下,山姆20 ace,那只懒狗13

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式:

/(?: (?:\d+(?:\.\d+)?) \w+\s?)/g

然后,您需要用replace empty string进行匹配。

那应该给你:'那只棕色的狐狸敏捷地跳了过来,那只懒惰的狗

正则表达式使用非捕获组(以(?:开头),首先匹配一个空格,然后匹配一个或多个数字('\d'),一个可选的小数点('\. ')后跟一个或多个数字('\d+')。然后是另一个空格,最后是一个或多个Word字符和一个可选的空白。 全局标志应提供所有结果,必须将其替换。

修改

似乎您要在匹配项中使用逗号(,),因此应替换为逗号。

Edit2 : 根据新信息:

/(?: (?:\d+(?:\.\d+)?) \w+$)/gm

您现在必须指定多行选项。