Michael Bahr
jedi at charm.net
Fri Apr 18 19:41:12 CDT 2008
Ok here is a function that may work for you. I have not tested it. I
leave the replace part to you. Use the debugger amply.
' This will match the following cc numbers:
'0000-0000-0000-0000
'0000 0000 0000 0000
'0000000000000000
'
' set a debug breakpoint at the top of this function and
' step 1 line at time
'
Function ccMatch (str as String) As Boolean
Dim regex As Object
Dim ccpattern as Variant
Dim regexMatch As Boolean
Dim matches As MatchCollection
ccMatch = 0
ccpattern = "(\d+((\ |-)?\d+)+)"
Set regex = CreateObject("VBScript.RegExp")
regexMatch = True
regex.Global = True
regex.ignorecase = True
' test for cc number
regex.pattern = ccpattern
regexMatch = regex.test(str)
If (regexMatch) Then
' got a match now substitute your string
' matches(0).submatches(0) should contain the cc number
Set matches = regex.Execute(str)
' once you step here look at the properties for the matches object
'
' the submatches index is the parenthesis order starting
' from left to right--can be viewed in the debug window
' while manually stepping
ccnumber = matches(0).submatches(0)
' now you can use your best method for replacing the cc number
' with your string
' regex.replace
ccMatch = 1
End If
End Function
hth. Gotta go, Dr. Who is on and then BSG. SciFi Friday.
Mike...
*********** REPLY SEPARATOR ***********
On 4/18/2008 at 6:12 PM Mark A Matte wrote:
>Thanks Mike,
>
>I had already considered the different lengths and seperators... this
>,"(\d+((\ |-)?\d+)+)", intrigues me...what do I do with it/how do i call
>it??? The numbers I'm looking for are in the middle of the text of a MEMO
>field.
>
>Thanks again,
>
>Mark A. Matte
>
>
>> Date: Fri, 18 Apr 2008 12:32:17 -0400
>> From: jedi at charm.net
>> To: accessd at databaseadvisors.com
>> Subject: Re: [AccessD] Search for credit card numbers
>>
>> Hi Mark, your best solution is to use a regular expression to match a
>> pattern of numbers. CC numbers can have dashes or spaces separating the
>> number groups or can be contiguous--just depends on how it was written.
>> For example using a pattern like
>>
>> (\d+((\ |-)?\d+)+)
>>
>> Meaning:
>> 1. The first set of parens (outer) capture the whole matching CC number.
>> 2. The first \d+ means one or more digits
>> 3. The ((\ |-)?\d+) means the next char either a space or "-" may exist
>> (because of the ?) and then again 1 or more digits
>> 4. And the final + is one or more of the pattern in #3.
>>
>> would cover 3 possible patterns
>> 0000-0000-0000-0000
>> 0000 0000 0000 0000
>> 0000000000000000
>>
>> CC number length range from 13 to 16 digits so this should catch them.
>> however this is not foolproof. If you happen to have some other number
>> that matches that pattern then it too will get caught.
>>
>> If you want to determine the issuer then a simple case statement
matching
>> the identifier will suffice.
>>
>> Give this some thought.
>>
>> Mike...
>>
>>
>>>
>>> Hello All,
>>>
>>> I'm getting ready to build something that searches MEMO and text fields
>>> for credit card numbers (card number NOT known)...and then replace
them.
>>>
>>> Before I got started, I was wondering if anyone has any advice...or has
>>> done somthing similar.
>>>
>>> Thanks,
>>>
>>> Mark A. Matte
>>> _________________________________________________________________
>>> Use video conversation to talk face-to-face with Windows Live
Messenger.
>>>
>http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM
_WL_Refresh_messenger_video_042008
>>> --
>>> AccessD mailing list
>>> AccessD at databaseadvisors.com
>>> http://databaseadvisors.com/mailman/listinfo/accessd
>>> Website: http://www.databaseadvisors.com
>>>
>>
>>
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>
>_________________________________________________________________
>Pack up or back upuse SkyDrive to transfer files or keep extra copies.
>Learn how.
>http://www.windowslive.com/skydrive/overview.html?ocid=TXT_TAGLM_WL_Refre
sh_skydrive_packup_042008
>--
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com