Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm looking for a regex in VBscript that I can use on a ArcMap table. I know what it would look like in python:

pat =r'[0-9]{3,4}'

This filters all numeric characters from the string which have the length 3 to 4. So from AO123 you'd get 123 and from VO2-324C, 324.

What would be the equivalent in VBScript? How do I implement it with the RexExp Object? ArcGIS has a Field calculator that let's you execute VBScript code. But even the most simple regex (see screenshot) fails with the error message object needed: 're'.

enter image description here

share|improve this question
    
So.... what's the problem? What have you tried? –  TLS Aug 20 '12 at 12:36
    
see my edit on the question for more detail. –  LarsVegas Aug 20 '12 at 12:48
    
This sounds like an ArcGIS question - how to get regex to run through VBScript in ArcGIS. –  TLS Aug 20 '12 at 12:50
    
You're probably right. When I posted I thought I could use the re object, just found out that ArcGIS uses the 'ATL regular expression engine' - certainly a different com object. Sorry for the confusion, I try to move my question there. Thanks. –  LarsVegas Aug 20 '12 at 12:57
add comment

migrated from stackoverflow.com Aug 20 '12 at 13:12

This question came from our site for professional and enthusiast programmers.

1 Answer

up vote 3 down vote accepted

The error is because you have not initialized the RegExp Object using CreateObject. I am getting results with the below script.

Pre-Logic VBA Script Code

Set re = CreateObject("VBScript.RegExp")
With re
    .Pattern = "[0-9]{3,4}"
    .Global = False
    .IgnoreCase = False
End With
targetString = [OUDE_NAAM] 'your field here

Final Result Variable

re.Execute(targetString).Item(0)
share|improve this answer
    
Oh, heavenly sweetness. Nice. Didn't know you have to initialize the object like this. But what do I know about VBScript? Thanks mate, man of my Monday! –  LarsVegas Aug 20 '12 at 15:03
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.