PeddaMedlem sedan juni 20006 032 inlägg Jag har följande regex:
Regex userIdAndStatus = new Regex("doLoginLogout("(.+?)", "(.+?)","fn1")");
Det jag försöker matcha är denna html kod:
<a class="listlink" href="javascript:doLoginLogout("4", "56746","fn1")">Logga in</a>
Värdena i detta fall som jag vill ha ut är 4 och 56746, men min regex hittar inget som matchar, så något har jag gjort fel.
CompusaMedlem sedan jan. 20023 327 inlägg Är det här input till ditt Regex?
<a class="listlink" href="javascript:doLoginLogout("4", "56746","fn1")">Logga in</a>
I så fall skulle du väl kunna gör enligt följande (torrkodat), om det endast är id och status som du vill ha ut?
Regex userIdAndStatus = new Regex("\d+");
string link = "<a class="listlink" href="javascript:doLoginLogout("4", "56746","fn1")">Logga in</a>";
MatchCollection matches = userIdAndStatus.Matches(link);
if (matches.Count > 1)
{
// matches[0] (userId)
// matches[1] (status)
}
Om du vill få ut det här i resultatet "doLoginLogout("4", "56746","fn1")" så bör du kunna använda följande uttryck
Regex userIdAndStatus = new Regex("doLoginLogout."\d+", "\d+","fn1".")
Om jag är fel ute, så får du gärna specificera tydligare vad som är input och vad du vill ha som output....
PeddaMedlem sedan juni 20006 032 inlägg Mmm, kanske förklarade dåligt.
Det här är min kod, som alltså inte hittar någon match.
Regex userIdAndStatus = new Regex("doLoginLogout("(.+?)", "(.+?)","fn1")");
statusNo = userIdAndStatus.Match(responseData).Groups[1].Value;
id = userIdAndStatus.Match(responseData).Groups[2].Value;
Variabeln responseData innehåller en del html kod, bland annat den kodsnutten som jag postade tidigare.
Jag testade även din kod med MatchCollection, men den hittade inte heller något som matchade regex'en.
Hoppas det här förklarar bättre.
PeddaMedlem sedan juni 20006 032 inlägg Hittade felet som var att html koden innehöll parenteser vilket fick min regex att få fnatt.
CompusaMedlem sedan jan. 20023 327 inlägg Yes, men det var därför jag bytte ut '(' och ')' mot '.' i det andra exemplet, men det kanske inte var tillräckligt? :q
Regex userIdAndStatus = new Regex("doLoginLogout[b][FONT="Arial Black"].[/FONT][/b]"\d+", "\d+","fn1"[B][FONT="Arial Black"].[/FONT][/B]")