Найдите строку между 2 известными значениями

Новый плагин jQuery для извлечения cookie и управления с привязкой для форм, и т.д.: http://plugins.jquery.com/project/cookies

62
задан Raktim Biswas 5 September 2016 в 16:41
поделиться

3 ответа

Решение без регулярного выражения:

string ExtractString(string s, string tag) {
     // You should check for errors in real-world code, omitted for brevity
     var startTag = "<" + tag + ">";
     int startIndex = s.IndexOf(startTag) + startTag.Length;
     int endIndex = s.IndexOf("</" + tag + ">", startIndex);
     return s.Substring(startIndex, endIndex - startIndex);
}
68
ответ дан 24 November 2019 в 16:33
поделиться

Подход A Regex с использованием ленивого сопоставления и обратной ссылки:

foreach (Match match in Regex.Matches(
        "morenonxmldata<tag1>0002</tag1>morenonxmldata<tag2>abc</tag2>asd",
        @"<([^>]+)>(.*?)</\1>"))
{
    Console.WriteLine("{0}={1}",
        match.Groups[1].Value,
        match.Groups[2].Value);
}
12
ответ дан 24 November 2019 в 16:33
поделиться
  Regex regex = new Regex("<tag1>(.*)</tag1>");
  var v = regex.Match("morenonxmldata<tag1>0002</tag1>morenonxmldata");
  string s = v.Groups[1].ToString();

Или (как указано в комментариях) для соответствия минимальному подмножеству:

  Regex regex = new Regex("<tag1>(.*?)</tag1>");

Класс Regex находится в пространстве имен System.Text.RegularExpressions .

109
ответ дан 24 November 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: