相对路径的正则表达式

时间:2017-03-27 11:16:57

标签: c# regex

以下行

<Compile Include="..\..\..\..\repo\projext\Base\Src\Index\Index.cs">

1.要开始使用<Compile

2.如果包含..\..\..\..\repo需要将其更改为..\..\..\

我必须从上面的行中移除(\ .. \ repo),其中repo值将动态更改。

如何通过Regex实现这一目标

2 个答案:

答案 0 :(得分:0)

试试这个:

\.\.\\[^\\.]+

说明:

  • \.\.\\ - 字面上的..\部分(.\应该在正则表达式中进行转义)
  • [^\\.]+ - 任何不包含\或'。'
  • 的字符序列

Demo

答案 1 :(得分:0)

您需要为此目的定义捕获组。首先使用这个正则表达式

(^<Compile.*)(\.{2}\\[^\.\\]+)(.*)

DEMO

var pattern = @"(^<Compile.*)(\.{2}\\[^\.\\]+)(.*)";
var replaced = Regex.Replace(text, pattern, "$1$3"); 

请注意,我们只打印$1$3,并省略了您不想要的$2