Jag försöker mig på ett Perl-pattern:
'<([^=].*)=([^\060].*) ([^=].*)=([^>].*)>'
Submönster 1 får värdet a, submönster 2 får värdet be, submönster 3 får värdet c och submönster 4 får värdet de. Helt otestat, men du kan ju alltid prova. :)
5 svar · 254 visningar · startad av Marcus E
Låt säga att vi har strängen x=x och vill ersätta den med t.ex. 1x2=3x4. D.vs. siffror före och efter båda x.
Detta kan göras i Visual Studio med söksträngen {:a*}={:a*} och ersättningen 1\12=3\24.
Går det att utöka detta så att alla förekomster av x=x inom vinkelparentes ersätts?
Exempelvis denna sträng:
<a=be c=de>
Att göra en sökning är inga problem. Frågan är hur ersättningen ska se ut.
Det behöver inte vara för Visual Studio. Perl går lika bra.
Jag försöker mig på ett Perl-pattern:
'<([^=].*)=([^\060].*) ([^=].*)=([^>].*)>'
Submönster 1 får värdet a, submönster 2 får värdet be, submönster 3 får värdet c och submönster 4 får värdet de. Helt otestat, men du kan ju alltid prova. :)
Söker inte koden efter två förekomster istället för en nu? Det kan vara hur många förekomster som helst och nu fungerar bara de första två.
Missade tydligen den här raden i ditt första inlägg:
Går det att utöka detta så att alla förekomster av x=x inom vinkelparentes ersätts?
:r
Då vet jag inte hur man gör. :)
Nu vet jag att det inte är VBScript som är aktuellt, men jag tänkte mer att du kunde se min tankegång kring det hela
strTag = "<x=x y=y z=z> bla <i=i>"
oRegExp.Pattern = "\<(.*?)\>"
set oMatches = oRegExp.Execute(strTag)
for each item in oMatches
oRegExp2.Pattern = "([^=].*?)=([^ ].*?)"
Set oMatches2 = oRegExp2.Execute(item.Value)
strTmp = strTag
for each item2 in oMatches2
strTmp = replace(strTemp, item2.Value, "nyttvärde")
next
next