1

从这样的字符串

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

如何使用正则表达式仅提取“.stream”和“.stream”之前第一次出现的“/”之间的部分,例如上面示例中的“unreachable”?

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

不需要正则表达式:

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 回答
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 回答