次のような文字列があります:
ソース パス: \build\PM\11.0.25.9\11025_0_X.pts デスティネーション パス:
ソース パスのみを取得するために、文字列「Source Path:」と「Destination Path:」を切り取りたいと考えています。
これを行うには、単純なRegex.Replace
.
ただし、これらの文字列の両方を検索するパターンを正確に記述する方法はわかりません。
何か案は?ありがとう。
おそらく、置換を使用しないもの:
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;
}
正規表現は必要ありません。次のようにするだけですReplace
。
var path = "Source Path: \build\PM\11.0.25.9\11025_0_X.pts Destination Path:"
.Replace("Source Path: ", "")
.Replace(" Destination Path:", "");
文字列が常に同じ形式で、パスにスペースが含まれていない場合は、文字列分割をSkip
およびFirst
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();