0

次のような文字列があります:
ソース パス: \build\PM\11.0.25.9\11025_0_X.pts デスティネーション パス:

ソース パスのみを取得するために、文字列「Source Path:」と「Destination Path:」を切り取りたいと考えています。
これを行うには、単純なRegex.Replace.

ただし、これらの文字列の両方を検索するパターンを正確に記述する方法はわかりません。

何か案は?ありがとう。

4

3 に答える 3

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;
}
于 2013-08-21T13:12:02.907 に答える
3

正規表現は必要ありません。次のようにするだけですReplace

var path = "Source Path: \build\PM\11.0.25.9\11025_0_X.pts Destination Path:"
    .Replace("Source Path: ", "")
    .Replace(" Destination Path:", "");
于 2013-08-21T13:08:51.960 に答える
1

文字列が常に同じ形式で、パスにスペースが含まれていない場合は、文字列分割をSkipおよびFirstIEnumerable 拡張機能と組み合わせて使用​​できます。

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();
于 2013-08-21T13:18:18.880 に答える