我有一个像test1.test2.part01
这样的输入,我希望将其删除到test1.test2
。我唯一知道的是,它将以partxx
结束,可能在partxx
之前有一个点。然而,它并不总是分开的。另一个输入示例可能是testas1.tlp2.asd3.part10
哪个应该被剥离到testas1.tlp2.asd3
。
我做了所有这些,没问题。问题是partxx
之前的结尾处的点。我现在的正则表达式是:
(.*)\.?part\d{1,2}
但它将包括该组中的点。我不希望这个点在群组中。鉴于点存在,下面的工作正如我所希望的那样,但它并不总是存在。
(.*)\.part\d{1,2}
如何从组中排除可选点?
答案 0 :(得分:3)
逃离点
(.*)\.?part\d{1,2}
你拥有它的方式,点被解释为“任何字符”而不是字面点。
可替换地,
s/\.part\d\d?$//;