webForumDet fria alternativet

Regexp - hur finna tredje </td>?

ASP

5 svar · 467 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Regexp är defenitivt inte min starka sida.

Jag kan lyckas klura ut hur jag kan plocka ut ett stort schabrak med kod ur en kodmassa, en sträng, med detta:

re.pattern = "kontroll-(.*?)<td valign=""top"" align=""right"">"

Men detta missar lite av det jag víll ha ut, men om jag ändrar koden till typ:

re.pattern = "kontroll-(.*?)</td>"

så får jag ingen träff. Jag antar att det beror på att det (givetvis) finns en massa </td> i den sträng jag kollar.

Så min fråga är, kan man som "slut-pattern" sätta tex den tredje förekomsten av </td> som dyker upp?

Medlem sedan jan. 2007177 inlägg
#2

Hmm... Nu är ju inte ASP mitt område men i de flesta sammanhang jag använt regexp så har tecknet "/" en speciell funktion och måste skyddas av ett "escape"-teken om det är en del av söksträngen.

Ex. För att hitta </td> söker man med <\/td>, där \ tecknet används för att det efterföljande "/" tecknet skall tolkas som ett vanligt tecken.

Medlem sedan dec. 20025 483 inlägg
#3

Slå på CI-flaggan och

/kontroll-((?:(?:.|\n|\r)*?<\/td>){3})/
Medlem sedan mars 20015 287 inlägg
#4

Hm.. det känns som om det är på rätt väg.

Men.. "Slå på CI-flaggan" ? Euh? Vad?

Som det är nu håller sidan bara på och försöker ladda tills den timas ut.

Medlem sedan dec. 20025 483 inlägg
#5

CI = Case Insensitive:

re.IgnoreCase = True
Medlem sedan mars 20015 287 inlägg
#6

Ah! :r

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)