regex 如果模式在Python中匹配,则从字符串中删除字母

7uhlpewt  于 2023-08-08  发布在  Python
关注(0)|答案(3)|浏览(121)

如果搜索模式匹配,则从行中提取整个字符串。

ln = "this is other expenses3 0.10 0.16 0.14 0.04 0.16"
pattern = "other expenses"

字符串
我的预期输出应该是这样的:找到模式单词并从单词中删除最后一个数值:-

this is other expenses 0.10 0.16 0.14 0.04 0.16


从“其他费用3”中删除

j7dteeu8

j7dteeu81#

下面的代码应该会找到你想要的模式,并删除除了匹配组1之外的所有内容。

import re

ln = "this is other expenses3 0.10 0.16 0.14 0.04 0.16"

pattern = 'other expenses'

print(re.sub(f'({pattern})' + r'\d', r'\g<1>', ln))

字符串
为您留下:

this is other expenses 0.10 0.16 0.14 0.04 0.16

py49o6xq

py49o6xq2#

import re

regex = r"(other expenses)\w+"

test_str = "this is other expenses3 0.10 0.16 0.14 0.04 0.16"
or
test_str =  this is other expenses4587 0.10 0.16 0.14 0.04 0.16

subst = "\1"


result = re.sub(regex, subst, test_str)

if result:
    print (result)

字符串

qmelpv7a

qmelpv7a3#

这可能会被认为是不优雅的,但

import re

    def trimparam(string,param):
        return re.sub('(?<='+param+')\S+','',string)

个字符

相关问题