I'm trying to search a regular expression
pattern
and, if it matches, find whether the value of that pattern exists inside any tag of the form "<sec id="sec123">" in a file. If it does, I want to replace it with
result1
. I think it can be done with the MatchEvaluator function, but I can't figure out how to apply it.
I'm new to VB.NET (and programming in general) and really don't know what to do. This is what I've tried so far:
sample input:
<sec id="sec1">
<p>"You fig. 23 did?" I <xref ref-type="section" rid="sec12">section 12</a> asked, surprised.</p>
<p>"There are always better terms <xref ref-type="section" rid="sec6">section 6</a>, Richard!" my mom said sharply.</p>
<p>I <xref ref-type="section" rid="sec2">section 2</a> stood. I <xref ref-type="section" rid="sec2">section 2</a> had to hurry if I <xref ref-type="section" rid="sec1">section 1</a> was going to get to work on time.
<fig id="fig4">
<caption><p>I'm confused</p></caption>
</fig>
</p>
<p>Turning to face her, I <xref ref-type="section" rid="sec2">section 2</a> walked backward. "I"ve seriously got to get ready. Why don"t we get together for lunch and talk more then?"</p>
<sec id="sec2">
<p>"You fig. 23 can"t be""</p>
<p>I <xref ref-type="section" rid="sec4">section 4</a> adored the Art Deco elegance of the Chrysler Building. I <xref ref-type="section" rid="sec2">section 2</a> could pinpoint my place on the island in relation to the posit table 9ion of the Empire State Building.</p>
<p>I <xref ref-type="section" rid="sec1">section 1</a> felt Gideon before I <xref ref-type="section" rid="sec1">section 1</a> saw him, my entire body humming wit table 9h awareness as he stepped out of the Bentley, which had pulled up behind the Benz.</p>
</sec>
</sec>
I want the program to find all
rid="secX" elements in the file and check whether that
"secX" element is present inside any of the expressions <sec id="secX"> in the entire file and if there is a mismatch, then the <xref ref-type="section" rid="secX">section X</a> will be removed to
section X and this will go on until there is no <b>rid="secX"</b>
expression is left to check
What I have tried:
Dim pattern As String="(?<=rid=\"sec)(\\d+)(?=\">)"
Dim r As Regex = New Regex(pattern)
Dim m As Match = r.Match(input)
If (m.Success) Then
Dim x As String=" id=""sec"+ pattern +""""
Dim r2 As Regex = New Regex(x)
Dim m2 As Match = r2.Match(input)
If (m2.Success) Then
Dim tgPat AsString="<xref ref-type="section" rid=""sec + pattern +"">(\w+) (\d+)</a>"
Dim tgRep As String= "$1 $2"
Dim tgReg As New Regex(tgPat)
Dim result1 As String = tgReg.Replace(input, tgRep)
Else
EndIf
EndIf
Next