c # Regex на обработчик строки XML - PullRequest
1 голос
/ 31 декабря 2010

Попытка возиться с регулярным выражением здесь, моя первая попытка.Я пытаюсь извлечь некоторые цифры из содержимого из тега XML.Содержимое выглядит следующим образом:

www.blahblah.se / maps.aspx? IsAlert = true & lat = 51.958855252721 & lon = -0.517657021473527

Мне нужно извлечь лат и длинные числовые значения из каждогоссылка на сайт.Они всегда будут иметь одинаковое количество символов, и у lon может быть или не быть знака «-».

Я думал о том, чтобы сделать это следующим образом (хотя это явно не правильно): (Строка ввопрос в теге "ссылка"):

             var document = XDocument.Load(e.Result);
             if (document.Root == null)
             return;

            var events = from ev in document.Descendants("item1")
                     select new
                     {
                         Title = (ev.Element("title").Value),
                         Latitude = Regex.xxxxxxx(ev.Element("link").Value, @"lat=(?<Lat>[+-]?\d*\.\d*)", String.Empty),
                         Longitude = Convert.ToDouble(ev.Element("link").Value),

                     };

        foreach (var ev in events)
        {
 do stuff
  }

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

Попробуйте:

Regex.Match(ev.Element("link").Value, @"lat=(?<Lat>[+-]?\d*\.\d*)").Groups[1].Value

Пример:

string ev = "www.blahblah.se/maps.aspx?isAlert=true&lat=51.958855252721&lon=-0.517657021473527";
string s = Regex.Match(ev, @"lat=(?<Lat>[+-]?\d*\.\d*)").Groups[1].Value;

Результат:

"51.958855252721"
0 голосов
/ 31 декабря 2010

Если у вас есть URL с параметрами GET, я бы соблазнился найти библиотеку, которая сможет разделить это для вас, вместо использования регулярных выражений.Могут быть крайние случаи, которые ваше регулярное выражение не обрабатывает, но библиотека, созданная для конкретной цели, будет обрабатывать (это зависит от набора данных, который вы должны проанализировать, и от того, насколько он ограничен, конечно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...