C#正则表达式。字符串后的可选匹配

时间:2010-05-14 13:49:17

标签: c# regex

我有一个像test1.test2.part01这样的输入,我希望将其删除到test1.test2。我唯一知道的是,它将以partxx结束,可能在partxx之前有一个点。然而,它并不总是分开的。另一个输入示例可能是testas1.tlp2.asd3.part10哪个应该被剥离到testas1.tlp2.asd3

我做了所有这些,没问题。问题是partxx之前的结尾处的点。我现在的正则表达式是:

(.*)\.?part\d{1,2}

但它将包括该组中的点。我不希望这个点在群组中。鉴于点存在,下面的工作正如我所希望的那样,但它并不总是存在。

(.*)\.part\d{1,2}

如何从组中排除可选点?

1 个答案:

答案 0 :(得分:3)

逃离点

(.*)\.?part\d{1,2}

你拥有它的方式,点被解释为“任何字符”而不是字面点。

可替换地,

s/\.part\d\d?$//;