Как я могу сопоставить две строки в одном foreach? - PullRequest
0 голосов
/ 22 сентября 2019

Я использую Regex для сопоставления символов из файла, но я хочу сопоставить 2 разные строки из этого файла, но они появляются более одного раза, поэтому я использую цикл.Я могу сопоставить одну строку, но не две строки.

Regex celcius = new Regex(@"""temp"":\d*\.?\d{1,3}"); 
foreach (Match match in celcius.Matches(htmlcode))
{ 
    Regex date = new Regex(@"\d{4}-\d{2}-\d{2}");
    foreach (Match match1 in date.Matches(htmlcode))
    {
        string date1 = Convert.ToString(match1.Value);
        string temperature = Convert.ToString(match.Value);
        Console.Write(temperature + "\t" + date1);
    }
}

htmlcode:

{"temp":287.05,"temp_min":286.932,"temp_max":287.05,"pressure":1019.04,"sea_level":1019.04,"grnd_level":1001.11,"humidity":89,"temp_kf":0.12},"weather":[{"id":804,"main":"Clouds","description":"overcast
clouds","icon":"04n"}],"clouds":{"all":100},"wind":{"speed":0.71,"deg":205.913},"sys":{"pod":"n"},"dt_txt":"2019-09-22
21:00:00"},{"dt":1569196800,"main":{"temp":286.22,"temp_min":286.14,"temp_max":286.22,"pressure":1019.27,"sea_level":1019.27,"grnd_level":1001.49,"humidity":90,"temp_kf":0.08},"weather":[{"id":804,"main":"Clouds","description":"overcast
clouds","icon":"04n"}],"clouds":{"all":99},"wind":{"speed":0.19,"deg":31.065},"sys":{"pod":"n"},"dt_txt":"2019-09-23
00:00:00"},{"dt":1569207600,"main":{"temp":286.04,"temp_min":286,"temp_max":286.04,"pressure":1019.38,"sea_level":1019.38,"grnd_level":1001.03,"humidity":89,"temp_kf":0.04},"weather":

1 Ответ

0 голосов
/ 22 сентября 2019

Вы можете использовать один шаблон Regex с двумя группами захвата для температуры и даты.Шаблон может выглядеть примерно так:

("temp":\d*\.?\d{1,3}).*?(\d{4}-\d{2}-\d{2})

Regex demo .

C # пример:

string htmlcode = // ...
var matches = Regex.Matches(htmlcode, @"(""temp"":\d*\.?\d{1,3}).*?(\d{4}-\d{2}-\d{2})");
foreach (Match m in matches)
{
    Console.WriteLine(m.Groups[1].Value + "\t" + m.Groups[2].Value);
}

Вывод:

"temp":287.05   2019-09-22
"temp":286.22   2019-09-23

Попробуйте онлайн .

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