Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB5,VB6,VBS
Expertise: Intermediate
Jul 7, 2001

Extract all quoted strings with the RegExp object

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 RegExp
Dim ma As Match

' the pattern ".*" means a double quote char followed by any number 
' of chars and finally another double quote char
re.Pattern = """.*"""     
' we want all occurrences
re.Global = True
' assumes that the text to be parsed is in the txtSource textbox
For Each ma In re.Execute(txtSource.Text)
    Print ma.Value & " at index " & ma.FirstIndex
Next
The following routine has only one drawback: it doesn't account for repeated double quote chars, which should translate to a single double quote. See how you can remedy to this problem:

Dim re As New RegExp
Dim ma As Match
Dim tmpText As String
Dim maText As String 

' the pattern ".*" means a double quote char followed by any number 
' of chars and finally another double quote char
re.Pattern = """.*"""     
' we want all occurrences
re.Global = True
' get the text to be parsed from the txtSource textbox, but
' replace repeated double quotes with an unprintable chars
tmpText = Replace(txtSource.Text, """""", vbNullChar & vbNullChar)

' search all the occurrences
For 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.FirstIndex
Next
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date