来自这样的字符串
http://a.b.c.d:1521/myApp/unreachable.stream/manifest.f4m?DVR
如何仅使用正则表达式提取“.stream”之间的部分和“.stream”之前的第一次出现“/”。上面的例子中“无法访问”?
答案 0 :(得分:3)
以下是regex的示例:
var match = Regex.Match(myStr, @"/([^/]+)\.stream\b");
string extracted = match.Groups[1].Value;
Console.WriteLine(extracted); // "unreachable"
答案 1 :(得分:1)
不需要正则表达式:
string result = url.Split('/').Where(s => s.EndsWith(".stream"))
.Select(s => s.Substring(0, s.Length - 7 /*".stream".Length*/)
.FirstOrDefault();
如果必须使用正则表达式:
string regex = "([^/]+?)\\.stream";
答案 2 :(得分: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();