1

このような文字列から

http://a.b.c.d:1521/myApp/unreachable.stream/manifest.f4m?DVR

「.stream」と「.stream」の前の「/」の最初の出現の間の部分のみを正規表現で抽出するにはどうすればよいですか。たとえば、上記の例では「到達不能」です。

4

3 に答える 3

3

正規表現を使用した例を次に示します。

var match = Regex.Match(myStr, @"/([^/]+)\.stream\b");
string extracted = match.Groups[1].Value;
Console.WriteLine(extracted); // "unreachable"
于 2013-10-28T16:11:04.410 に答える
1

入力がそのようなURIになる場合...

var uri = new Uri(@"http://a.b.c.d:1521/myApp/unreachable.stream/manifest.f4m?DVR");

var streamSegment = uri.Segments.FirstOrDefault(a => a.Contains(".stream")) ?? "";

var result = streamSegment.Split('.').First().Dump();
于 2013-10-28T16:08:14.850 に答える
1

正規表現は必要ありません:

string result = url.Split('/').Where(s => s.EndsWith(".stream"))
                     .Select(s => s.Substring(0, s.Length - 7 /*".stream".Length*/)
                     .FirstOrDefault();

正規表現を使用する必要がある場合:

string regex = "([^/]+?)\\.stream";

http://fiddle.re/cyy8d

于 2013-10-28T16:06:17.320 に答える