1 (изменено: darthmakr, 2016-04-16 05:15:08)

Тема: AHK: вывод строки при совпадении со смежными

День добрый. Есть следующая необходимость: из данного кода необходимо выводить лишь тех, чье проживание соответствует городу Москва. Выводить нужно именно имена. Реализуемо ли это?


<tr class="displayed">
<td><span class="user-icon"></span>Иван</td>
<td>60 лет</td>
<td>Москва</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Александр</td>
<td>30 лет</td>
<td>Киев</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Анна</td>
<td>30 лет</td>
<td>Москва</td>
</tr>

2 (изменено: mafckz, 2016-04-16 06:51:24)

Re: AHK: вывод строки при совпадении со смежными

По образцу кода от Malcev'a (http://forum.script-coding.com/viewtopi … 05#p102405) :

var = 
(
<tr class="displayed">
<td><span class="user-icon"></span>Иван</td>
<td>60 лет</td>
<td>Москва</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Александр</td>
<td>30 лет</td>
<td>Киев</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Анна</td>
<td>30 лет</td>
<td>Москва</td>
</tr>
)
Pos := 1, match := ""
While Pos := Regexmatch(var, "s)(?:^|\R)<td><span class=""user-icon""></span>(\D*)</td>(?:[^\r\n]*\R){2}<td>Москва</td>(?:$|\R)", match, Pos+StrLen(match))
   result .= match1 "`n"
msgbox % result

3

Re: AHK: вывод строки при совпадении со смежными

Cпасибо, выручили. Еще плохо разбираюсь в этой области, поэтому спрошу еще:
можно ли выводить каждого  человека по данным результатам в отдельных, последовательно открывающихся окнах (нажал ОК - вывелось следующее имя)?

4

Re: AHK: вывод строки при совпадении со смежными

var = 
(
<tr class="displayed">
<td><span class="user-icon"></span>Иван</td>
<td>60 лет</td>
<td>Москва</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Александр</td>
<td>30 лет</td>
<td>Киев</td>
</tr>
<tr class="displayed">
<td><span class="user-icon"></span>Анна</td>
<td>30 лет</td>
<td>Москва</td>
</tr>
)

result := Object()
Pos := 1, match := ""
While Pos := Regexmatch(var, "s)(?:^|\R)<td><span class=""user-icon""></span>(\D*)</td>(?:[^\r\n]*\R){2}<td>Москва</td>(?:$|\R)", match, Pos+StrLen(match))
   result[A_Index] := match1

loop % result.MaxIndex()
{
	Msgbox % result[A_Index]
}