Editing Regex Code -
i hoping can me think regex problem.
i have program takes piece of html code , extracts phone numbers , separates them semi colons. change extracts between 2 specific text strings backslashes in between. example
stringone/******/stringtwo stringone/876876876876876/stringtwo stringone/abcdefghijklmnopqrstuvwxyz/stringtwo
before , after total string there may or may not spaces, letters, numbers or special characters.
i have tried regex can't figured out. assume (and instinct) line needs changing one:
.pattern = "(\+([\d \(\)-]+){10,15})|((\d( |-))?\(?\d{2,4}\)?( |-)\d{3,4}( |-)\d{3,4})|(\d{3,4}( |-)\d{7})"
but entire code follows:
function main ( strtext ) dim strresult strresult = extract_phone_numbers ( strtext ) main = strresult end function ' function extracts phone numbers specific string using pattern matching (a regular expression). function extract_phone_numbers ( strtext ) dim strresult set regularexpressionobject = new regexp regularexpressionobject .pattern = "(\+([\d \(\)-]+){10,15})|((\d( |-))?\(?\d{2,4}\)?( |-)\d{3,4}( |-)\d{3,4})|(\d{3,4}( |-)\d{7})" .ignorecase = true .global = true end set objmatches = regularexpressionobject.execute( strtext ) each objmatch in objmatches if ( instr ( strresult, objmatch.value ) = 0 ) if ( len ( strresult ) > 0 ) strresult = strresult + "; " end if strresult = strresult + objmatch.value end if next set regularexpressionobject = nothing strresult = trim ( strresult ) extract_phone_numbers = strresult end function
can me changed?
- in general, pattern matching pattern
stringone/[^/]*/stringtwo
, including slashes - to match inside, not including slashes, there several ways. if flavor supports lookarounds, go this:
(?<=stringone/)[^/]*(?=/stringtwo)
- vbs doesn't support lookbehind, need match whole string, capturing wanted part group 1:
stringone/([^/]*)/stringtwo
on the demo, @ group 1 captures in right pane. note in regex tester slashes had escaped.
explanation
stringone/
matches literal stringone/
, negated character class [^/]
matches 1 character not /
, , *
quantifier repeats 0 or more times, match final /stringtwo
.
Comments
Post a Comment