When parsing a text file that contains quoted strings – such as a VB source file – you might want to quickly locate and extract all the quoted strings. Thanks to regular expressions and the RegExp object in the Microsoft VBScript Regular Expression type library, this task is surprisingly easy:
Dim re As New RegExpDim ma As Match' the pattern ".*" means a double quote char followed by any number ' of chars and finally another double quote charre.Pattern = """.*""" ' we want all occurrencesre.Global = True' assumes that the text to be parsed is in the txtSource textboxFor Each ma In re.Execute(txtSource.Text) Print ma.Value & " at index " & ma.FirstIndexNext
The following routine has only one drawback: it doesn’t account for repeateddouble quote chars, which should translate to a single double quote. See how you can remedy to this problem:
Dim re As New RegExpDim ma As MatchDim tmpText As StringDim maText As String ' the pattern ".*" means a double quote char followed by any number ' of chars and finally another double quote charre.Pattern = """.*""" ' we want all occurrencesre.Global = True' get the text to be parsed from the txtSource textbox, but' replace repeated double quotes with an unprintable charstmpText = Replace(txtSource.Text, """""", vbNullChar & vbNullChar)' search all the occurrencesFor Each ma In re.Execute(tmpText) ' display this occurrence, but restore embedded double quotes tmpText = Replace(ma.Value, vbNullChar & vbNullChar, """""") Print tmpText & " at index " & ma.FirstIndexNext