T Travoni Medlem sedan okt. 2004 1 556 inlägg Frågan 29 sep. 2009 14:29 #1 Mönstret ser ut så här:
Regex.Match(strHtml, "[B]<div class=""rubbe"">(.+)><\/div>[/B]").Groups(1).ToString
I en löpande text finns detta:
text text text [B]<div class="rubbe">Sommar 09/10</div>[/B] text text text
Jag vill ha ut: Sommar 09/10
Resultatet blir tomt.
Vad är fel?
M metalboy Medlem sedan jan. 2005 953 inlägg Du har nu skrivit: (.+)>
ta bort >
T Travoni Medlem sedan okt. 2004 1 556 inlägg Ah, det var ju det.
Nytt problem:
Om jag även vill gruppera ut det som finns efter, alltså hela tabellen. Hur gör jag då?
<div class="rubbe">Vinter 09/10</div>
<table class="tblwrap"><tr class="trwrap"><td class="tdwrap">
<table class="p">
<tr>
<td>
'...Flera kolumner/rader
</td>
</tr>
</table>
</td></tr>
</table>
Nu har jag ett pattern som ser ut så här:
<div class="rubbe">(.+)<\/div>\s{2}<table class="tblwrap">(.+)<\/table>
Det verkar ju i alla fall inte fungera.
Med stor sannolikhet består radbrytningarna av två tecken. \n och \r, vilket isf skulle ge totalt 4 blanka tecken. Jag skulle använt \s* i detta fall som matchar 0, 1 eller flera mellanrumstecken.
<div class="rubbe">(.+)<\/div>\s*<table class="tblwrap">(.+)<\/table>
T Travoni Medlem sedan okt. 2004 1 556 inlägg Oki, det är säkert sant.
Har ändrat det, men får fortfarande "No Results" här: http://regexlib.com/RETester.aspx
C colione Medlem sedan juni 2001 4 421 inlägg Om du vill slå på "dot matches newline" (vilket den inte gör default) behöver du kasta in det i din regex-konstruktion:
Regex.Match(strHtml, "<div class="rubbe">(.+)<\/div>\s*<table class="tblwrap">(.+)<\/table>", [B]RegexOptions.Singleline[/B]).Groups(1).ToString
Uttrycket är rätt utformat, men du måste aktivera "single-line". På testsidan är det ju enkelt, men du får själv lista ut hur man faktiskt gör i ASP.
T Travoni Medlem sedan okt. 2004 1 556 inlägg Ahaaaa... Det löste biffen.
Tack alla inblandade!