webForumDet fria alternativet

Reg Exp med .net hämta ut matches ur sträng

.NET

2 svar · 199 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Jag har en stor sträng med en mängd html, länkar, bilder, html taggar. Jag gör ett litet script som ska plocka ut alla länkar inom <a href> taggar och lägga in det i en arraylist.

Länkarna kan se ut på två sätt

<a href=http://www.spray.se>Spray</a>
<a href="http://www.spray.se">Spray</a>

Jag har ett reg exp pattern som ser ut så här
<a href=(.*?)([^>].*?)>

När jag testkör det på https://www.webeye.nu fungerar det och returnerar träffarna där en <a href> tagg finns. Men i min asp.net app blir det inte riktigt rätt

Private Function FetchLinksToArrayList(ByVal sHTMLContent As String,ByVal URL As String)  As ArrayList
 Dim rRegEx As Regex
 Dim mMatch As Match
 Dim aMatch As New ArrayList()
 rRegEx = New RegEx("(href=".{10,}">)|(href=.{10,}>)")
 mMatch = rRegEx.Match(sHTMLContent)
 While mMatch.Success
    Dim sMatch As String
    sMatch = ProcessURL(mMatch.Groups(1).ToString,URL)
    aMatch.Add(sMatch)
    mMatch = mMatch.NextMatch()
 End While

 Return aMatch
End Function

Den klagar på mitt reg exp pattern, säger "BC30203: Identifier expected.", lägger jag till ett par " tecken och skriver rRegEx = New RegEx("(href="".{10,}"">)|(href=.{10,}>)") så returnerar den inte rätt saker. Någon som har ett annat pattern som man kan använda eller vad har jag gjort fel, tacksam

Medlem sedan aug. 20003 575 inlägg
#2
RegEx("(href=[b]""[/b].{10,}[b]""[/b]> )|(href=.{10,}> )")

Är du säker du kan använda "" tecken i .NET ???
Testa att använd Convert.ToChar(34) så är det iallall i C#.

Medlem sedan dec. 19996 522 inlägg
#3

Ahhh såklar det var där problemet låg, stort tack Nickemannen. Har en annan fråga. Jag har nu byggt om mitt pattern

rRegEx = New RegEx("<a href="& Convert.ToChar(34) &"(.*?)([^>].*?)"& Convert.ToChar(34) &">")

Om jag vill bygga ut det så att det tar med länkar som även ser ut på detta vis
<a href=http://www.spray.se>Spray</a>

Hur skriver man då, har inte fått det att fungera med eller switchen

245 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)