Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
Hello,
The snippet of code below builds a new string "Newval" based on the pattern [A-Z] and that works fine but what if I wanted to exclude values . For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? With RegExp .Global = True .Pattern = "[A-Z]" End With Set Myrange = ActiveSheet.Range("A1:A10") For Each C In Myrange newval = "" Set Collection = RegExp.Execute(C.Value) For Each RegMatch In Collection newval = newval & RegMatch Next Next D |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
On Wed, 19 Sep 2007 12:24:02 -0700, Dave
wrote: For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? .Pattern = "[^)(*&\^]" Note the \ that precedes the second ^. The first ^ defines the character sequence as negative and the \ escapes the second ^ so it's included in the negative character sequence. -- Dick Kusleika Microsoft MVP-Excel http://www.dailydoseofexcel.com |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
On Wed, 19 Sep 2007 12:24:02 -0700, Dave
wrote: Hello, The snippet of code below builds a new string "Newval" based on the pattern [A-Z] and that works fine but what if I wanted to exclude values . For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? With RegExp .Global = True .Pattern = "[A-Z]" End With Set Myrange = ActiveSheet.Range("A1:A10") For Each C In Myrange newval = "" Set Collection = RegExp.Execute(C.Value) For Each RegMatch In Collection newval = newval & RegMatch Next Next D Perhaps you just need to negate the character class: "[^)(*&^]" which translates as: Match a single character NOT present in the list ")(*&^" --ron |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
On Wed, 19 Sep 2007 17:59:04 -0500, Dick Kusleika wrote:
On Wed, 19 Sep 2007 12:24:02 -0700, Dave wrote: For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? .Pattern = "[^)(*&\^]" Note the \ that precedes the second ^. The first ^ defines the character sequence as negative and the \ escapes the second ^ so it's included in the negative character sequence. I don't believe there is any need to escape the ^ in VBScript. Both by testing, and by documentation, it seems to be unnecessary. http://msdn2.microsoft.com/en-us/library/ta6y6h4z.aspx "If the caret character appears in any other position within the list, it matches itself, that is, it has no special meaning. " --ron |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
On Wed, 19 Sep 2007 20:14:28 -0400, Ron Rosenfeld
wrote: On Wed, 19 Sep 2007 17:59:04 -0500, Dick Kusleika wrote: On Wed, 19 Sep 2007 12:24:02 -0700, Dave wrote: For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? .Pattern = "[^)(*&\^]" Note the \ that precedes the second ^. The first ^ defines the character sequence as negative and the \ escapes the second ^ so it's included in the negative character sequence. I don't believe there is any need to escape the ^ in VBScript. Both by testing, and by documentation, it seems to be unnecessary. http://msdn2.microsoft.com/en-us/library/ta6y6h4z.aspx "If the caret character appears in any other position within the list, it matches itself, that is, it has no special meaning. " --ron Of course, that only applies when the ^ appears within brackets as other than the first character. --ron |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Regular expressions
On Wed, 19 Sep 2007 20:14:28 -0400, Ron Rosenfeld
wrote: On Wed, 19 Sep 2007 17:59:04 -0500, Dick Kusleika wrote: On Wed, 19 Sep 2007 12:24:02 -0700, Dave wrote: For example I could set a pattern of "[)(*&^]" how would I code it to exclude those values? .Pattern = "[^)(*&\^]" Note the \ that precedes the second ^. The first ^ defines the character sequence as negative and the \ escapes the second ^ so it's included in the negative character sequence. I don't believe there is any need to escape the ^ in VBScript. Both by testing, and by documentation, it seems to be unnecessary. http://msdn2.microsoft.com/en-us/library/ta6y6h4z.aspx "If the caret character appears in any other position within the list, it matches itself, that is, it has no special meaning. " Ron: You're right. Mine was actually excluding the slash too. Thanks for the correction. -- Dick |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Regular Expressions | Excel Programming | |||
Using Regular Expressions with VBA | Excel Programming | |||
Regular expressions | Excel Programming | |||
Regular Expressions in VBA? | Excel Programming | |||
VBA and Regular expressions | Excel Programming |