webForumDet fria alternativet

Regexp matches och replace?

.NET

6 svar · 572 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

... href="/mapp/bilder/bilder.aspx"
... href="**temp/**bilder/flerbilder.aspx"
... href="/foton/personal/personal.aspx"

Jag vill skapa en regexp som med "matches" replace:ar alla länkadresser i filer.

Alla adresser skall replacas till : href="/nytt_mappnamn/...orginalsökväg.aspx, förutom de som börjar med "temp/".

Hur åstakommer jag detta?
Lite exempelkod skulle vara riktigt smutt.
Tack på förhand.

/T

Medlem sedan dec. 20025 483 inlägg
#2
Dim myString As String = Regex.Replace(s, "(href\s*=\s*"")(?!temp/)(?:/?)([^""])", "$1/nytt_mappnamn/$2", RegexOptions.IgnoreCase)
Medlem sedan okt. 20041 556 inlägg
#3

Ruggigt proffisigt.

Medlem sedan okt. 20041 556 inlägg
#4

...nu återstår bara ett problem.
Ibland så är det med dubbelfnutt (") och ibland med sitattecken(') och ibland "ingenting" runt urlen då funkar mönstret inte.

<a href="/mapp/bilder/bilder.aspx">
<a href='temp/bilder/flerbilder.aspx'>
<a href=/foton/personal/personal.aspx>
Medlem sedan dec. 20025 483 inlägg
#5
Dim myString As String = Regex.Replace(s, "(href=[""']?)(?!temp/)(/?[^/""'>]+/?)", "$1/nytt_mappnamn/", RegexOptions.IgnoreCase)
Medlem sedan okt. 20041 556 inlägg
#6

Du är för gullig! ;)
Fattar ingenting av det där mönstret med det verkar ju funka.

Medlem sedan dec. 20025 483 inlägg
#7

:e

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)