kan inte regexp, men vill ha hjälp med följande. Jodå, det är inga större problem. språket är vb6 Ok, testa följande...regexp hjälp, skolexempel..
har en fil jag loopar igenom.
i denna fil ligger bla följande:
%topdf(path2appfile=j:\aacr\sasproject\app1.tex, outfile=j:\aacr\sasproject\app1.pdf);
jag vill byta ut sökvägarna, dvs j:\aacr\sasproject\app1.tex och j:\aacr\sasproject\app1.pdf
mot andra sökvägar, exempelvis c:\temp
kan man lösa detta mha regular expression?Sv: regexp hjälp, skolexempel..
Uttrycket skulle kunan se ut som följer
<code>
\w:\\(?:[^\\]+\\)+
</code>
Sedan beror det på vilket språk du skriver programmet i hur du implementerar detta. Ovanstående uttryck matchar på allting som ser ut som till exempel c:\mapp1\mapp2\etc\ , så det är sedan bara att ersätta med sökvägen du vill ha. Kom också ihåg att sätta ut sista \ i ersättningssträngen, till exempel c:\temp\Sv:regexp hjälp, skolexempel..
nu har jag följande
1) strängen i fråga som skall bearbetas, vilken är:
%topdf(path2appfile=j:\aacr\sasproject\app1.tex, outfile=j:\aacr\sasproject\app1.pdf)
2) "det utbytta", dvs
sRegExpresult="%topdf(path2appfile=C:\Temp\app1.pdf);"
3) det jag vill byta ut mot, i detta fallet "c:\temp\"
..således blir det fel nånstans. den byter ut path2appfile mot c:\temp\app1.pdf" - och sen slutar som synes strängen där. outfileparametern försvinner helt.
jag har gjort som du sa. här är min kod.
<code>
Dim regexp2 As New RegExp
regexp2.Pattern = "\w:\\(?:[^\\]+\\)+"
regexp2.IgnoreCase = True
sRegExpresult = regexp2.Replace(sStringtoReplacecontentWithin)
'sRegexpresult skall få följande innehåll:
'%topdf(path2appfile=c:\temp\app1.tex, outfile=c:\temp\app1.pdf);
'men blir %topdf(path2appfile=C:\Temp\app1.pdf);
'dvs omkastade parametrar och en parameter fattas (outfile).
</code>
jag kan som sagt inget om regexp, så hjälp uppskattas. Sv: regexp hjälp, skolexempel..
<code>
Dim RegExp As New RegExp
RegExp.Pattern = "\w:\\(?:[^\\]+\\)+"
RegExp.Global = True
Text = RegExp.Replace(Text, "C:\Temp\")
</code>