webForumDet fria alternativet

Problem med regex

3 svar · 524 visningar · startad av Pedda

PeddaMedlem sedan juni 20006 032 inlägg
#1

Regex har aldrig varit min starka sida, så nu behöver jag hjälp igen.

Har en sträng som innehåller denna text, och det jag vill plocka ut är alltså namnen och deras status (Inloggad alt. Utloggad). Idnummren på td'n med namnen är i formatet fn plus en siffra så det bör man ju kunna använda för att få ut det jag vill. Totalt är det fem stycken poster jag vill ha ut, fn1 till fn5.

... en massa html kod ....
<tr class="myGreyRow">
<td>6</td>
<td id="fn1">Karlsson, Allan</td>
<td>07093739457</td>
<td>Utloggad</td>
<td>
<a class="listlink" href="javascript:doEditAgent(&quot;56746&quot;)">&#65533;ndra</a>, 
							<a class="listlink" href="javascript:doRemoveAgent(&quot;56746&quot;, &quot;fn1&quot;)">Ta bort</a>, 
							<a class="listlink" href="javascript:doLoginLogout(&quot;4&quot;, &quot;56746&quot;,&quot;fn1&quot;)">Logga in</a>
</td>
</tr>
<tr>
<td>20</td>
<td id="fn2">Samuelsson, Nils</td>
<td>07098357348</td>
<td>Utloggad</td>
<td>
<a class="listlink" href="javascript:doEditAgent(&quot;44907&quot;)">&#65533;ndra</a>, 
							<a class="listlink" href="javascript:doRemoveAgent(&quot;44907&quot;, &quot;fn2&quot;)">Ta bort</a>, 
							<a class="listlink" href="javascript:doLoginLogout(&quot;4&quot;, &quot;44907&quot;,&quot;fn2&quot;)">Logga in</a>
</td>
</tr>
... en massa html kod ....

Förslag?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Vad är de olika status:arna

Och det är
Karlsson, Allan
Utloggad

(ochäven Samuelsson) Något mer från "allan"?

Om det är HTML data så är kanske XPath ett bättre alternativ för dig

PeddaMedlem sedan juni 20006 032 inlägg
#3

Statusarna är Inloggad eller Utloggad.

resultat när jag skriver ut sen ska vara typ
Karlsson, Allan Utloggad
Samuelsson, Nils Utloggad
Nilsson, Adam Inloggad
osv...

Visst går det att läsa dom trädet, och du kanske har rätt i att XPath är bättre.

BrimbaMedlem sedan dec. 19995 875 inlägg
#4

En lite gammal tråd, men såg att den inte var löst.

Om html-koden alltid ser ut så, så kan du göra typ:

fn[1-5]">(\w+), (\w+)</td>.*?<td>\d+</td>.*?<td>(\w+)

Då hamnar efternamnet (karlsson, samuelsson) i grupp 1, förnamnet i grupp 2 och statusen i grupp 3.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)