2013-08-21 47 views
0

我有一个字符串,它看起来像这样:
源路径:\建立\ PM \ 11.0.25.9 \ 11025_0_X.pts目标路径:正则表达式“AND”运算符?

我要切断字符串“源路径:”和“目的地路径:“为了只获得源路径。
我想这样做会做一个简单的Regex.Replace

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

任何想法?谢谢。

回答

3

无需使用正则表达式,你可以只是简单的做一个Replace

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

如果目的地路径不是空的? – James

+0

谢谢你完美的作品! – user2619395

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

如果你的字符串总是相同的格式并且您的路径中没有空格,则可以将字符串拆分与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(); 
+0

小调。您的输入字符串需要@来防止将反斜杠用作转义码。编辑:我看到所有的回应都有这个错误。好吧。 :-) –

+0

@FrancisGagnon - 谢谢 - 复制/粘贴错误,现在修复。 – tvanfosson