我有一个类似这样的字符串:
opt/custom/building/BuildingInput/address/BuildingUnderwritingInput/Name
我需要捕捉所有具有'Input'的单词并将它们从路径中删除。所以我的最后一个字符串是:
opt/custom/building/address/Name
我试过类似的方法,但没有用
x = "opt/custom/building/BuildingInput/address/BuildingUnderwritingInput/Name"
re.sub(r'Input/', r'/' , x.rstrip())
它给了我
opt/custom/building/Building/address/BuildingUnderwriting/Name
此处保留“BuildingInput”的“Building”和“BuildingUnderwritingInput”的“BuildingUnderwriting”。我希望整个单词“BuildingInput”和“BuildingUnderwritingInput”被省略。有什么帮助吗?或者如果有人可以告诉我如何从“Input”的出现回溯到“/”的第一次出现,以便我可以匹配整个单词“BuildingInput”和“BuildingUnderwritingInput”
3条答案
按热度按时间8xiog9wr1#
使用此正则表达式删除所有在斜杠(/)内以Input结尾的单词:
对于您的案例:
ne5o7dgx2#
目前你只搜索和替换
Input/
,你必须搜索整个单词,例如使用这个正则表达式:bf1o4zei3#
删除0个或多个不是斜杠(
[^/]*
)的字符,直到出现Input
后跟斜杠:如果路径的最后一个元素也可能包含一个
Input
字(没有尾随的斜杠),你可以使用这个代替:在这里,
/
或字符串结尾($
)匹配Input
之后。但是,如果最后一个单词匹配,则会留下一个斜杠。如果这是一个问题,您可以单独删除它: