webForumDet fria alternativet

"Replace:a" flera grupper med RegExp

ASP

3 svar · 265 visningar · startad av Drogen

Medlem sedan maj 200315 inlägg
Frågan#1

Har precis börjat med RegExp och tror att det är något för mitt behov. Jag vill söka upp tre olika strängkombinationer och ersätta dom med tre olika alternativ. Ett exempel:
Jag letar upp kombinationerna "abc", "def" och "ghi". Dessa vill jag ersätta med "xyz", "tuv" och "ijk" i nämnd ordning. Är detta möjligt i samma funktion, eller måste jag skapa tre olika RegExp-objekt?

<%
StrText = "abcdefghijklmnopqrstuvwxyz"
Set objRegExp = New RegExp 
objRegExp.Pattern = "(abc)|(def)|(ghi)" 
objRegExp.Global = True 
StrNewString = objRegExp.Replace(StrText, "$1xyz,$2...???? ")'Någonting här, eller..?
Set objRegExp = Nothing 
%>
Medlem sedan dec. 20003 887 inlägg
#2

Jag tror du måste göra det med tre olika pattern, men det kanske kan finnas någon RegExp-ert, som vet bättre.

<%
  strText = "abcdefghijklmnopqrstuvwxyz"

  Set objRegExp = New RegExp
  objRegExp.Global = True

  objRegExp.Pattern = "abc"
  strText = objRegExp.Replace(strText, "xyz")
  objRegExp.Pattern = "def"
  strText = objRegExp.Replace(strText, "tuv")
  objRegExp.Pattern = "ghi"
  strText = objRegExp.Replace(strText, "ijk")
%>
Medlem sedan juni 20019 519 inlägg
#3

Engine^ gjorde rätt... fast nu är det bara för lcase() som gäller :e

Medlem sedan maj 200315 inlägg
#4

OK, Tack! Den lösningen ser ändå mycket bättre ut än den nuvarande jag har med "vanlig" replace, loopar och if-satser i massor.

Edit
------------------------------------------------------
Och jag har objRegExp.IgnoreCase = true med nu också.....

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