正则表达式“AND”运算符?

时间:2013-08-21 13:07:08

标签: c# .net regex

我有一个看起来像这样的字符串:
源路径:\ build \ PM \ 11.0.25.9 \ 11025_0_X.pts目标路径:

我想切断字符串“Source Path:”和“Destination Path:”,以便只获取源路径。 我想这样做就是做一个简单的Regex.Replace

但是我不确定如何编写一个可以查找这两个字符串的模式。

有什么想法吗?谢谢。

3 个答案:

答案 0 :(得分:6)

也许不使用的东西替换:

string s = "Source Path: \build\PM\11.0.25.9\11025_0_X.pts Destination Path:";
Match m = Regex.Match(s, "^Source Path:\s(.*?)\sDestination Path:$");
string result = string.Empty;
if (m.Success)
{
    result = m.Groups[1].Value;
}

答案 1 :(得分:3)

不需要正则表达式,只需执行Replace

即可
var path = "Source Path: \build\PM\11.0.25.9\11025_0_X.pts Destination Path:"
    .Replace("Source Path: ", "")
    .Replace(" Destination Path:", "");

答案 2 :(得分:1)

如果您的字符串始终采用相同的格式且路径中没有空格,则可以将字符串拆分与SkipFirst IEnumerable扩展一起使用。

var input = @"Source Path: \build\PM\11.0.25.9\11025_0_X.pts Destination Path:";
var path = input.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                .Skip(2)
                .First();