[AccessD] Use Regex - Create Camel Case

Michael Bahr jedi at charm.net
Sat Sep 29 21:33:54 CDT 2007


> Michael,
>
> The problem with doing this is that each object has to be examined
> character
> by character, EVERY line.  In this specific case I could certainly do this
> however I am under the impression that RegEx is optimized to do this kind
> of
> thing.  Kind of the difference between a similar function to look at every
> character and remove it if it matches something and using the replace to
> remove a character. Replace is written in a highly optimized (perhaps even
> in assembler) whereas the "loop and search" is not optimized at all.
>
>
>
>
> John W. Colby
> Colby Consulting
> www.ColbyConsulting.com
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Michael Bahr
> Sent: Friday, September 28, 2007 2:25 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Use Regex - Create Camel Case
>
> Hi John, here is one way to do it (although there are many ways to get the
> same end result).  Mind you this is air code but hopefully should be
> enough
> to get you going.  You will need to create the main loop within your code.
>
> Create a list of all delimiters that are used in your CSV files such as
> delimiters = '%|*|$|@|!|#|&|^|_|-|,|.|;|:| '
>
> then run through your CSV files line by line evaluating the line saving
> the
> line into an array thisarray = Split(line, delimiters)
>
> then run through the array performing a Ucase on the first letter of each
> word newline = ""
> For item=1 to ubound
>   newline = newline & whatEverToCapFirstChar(item) Next item
>
> where ubound is the array size
>
>
> Now here are two scripts that do the same thing, one is Perl and the other
> is TCL.  Both of these languages are open source and free and can be
> gotten
> at http://www.activestate.com/Products/languages.plex
>
> Perl:
>
> my $delimiters = '/:| |\%|\*|\$|\@|\!|\#|\&|^|_|-|,|\./';
> my @test = ("John colby",
>             "%idiotic_Field*name",
>             "hey#hey#Hey,hello_world",
>             "this#is_a_test_of_the-emergency-broadcast-system");
>
> foreach my $item (@test) {
>    my $temp = "";
>    my @list = split ($delimiters, $item);
>    foreach my $thing (@list) {
>       $temp .= ucfirst($thing);
>    }
>    print "$temp\n";
>
> }
>
> Result
> d:\Perl>pascalcase.pl
> JohnColby
> IdioticFieldName
> HeyHeyHeyHelloWorld
> ThisIsATestOfTheEmergencyBroadcastSystem
>
> TCL:
>
> set delimiters {%|*|$|@|!|#|&|^|_|-|,|.|;|:|\ "} set test [list {John
> colby}
> {%idiotic_Field*name} {hey#hey#Hey,hello_world}
> {this#is_a_test_of_the-emergency-broadcast-system}]
>
>
> foreach item $test {
>    set str ""
>    set mylist [split $item, $delimiters]
>    foreach thing $mylist {
>       set s [string totitle $thing]
>       set str "$str$s"
>    }
>    puts $str
>
> }
>
> Results
> D:\VisualTcl\Projects>tclsh pascalcase.tcl JohnColby IdioticFieldName
> HeyHeyHeyHelloWorld ThisIsATestOfTheEmergencyBroadcastSystem
>
>
> hth, Mike...
>
>
>> Folks,
>>
>> I am looking for a regex expression (preferably with explanation) for
>> taking an expression and creating a camel case (or PascalCase)
>> expression.
>>
>> I get CSV files with headers in them.  All too often the eejits that
>> created the databases they came from used embedded spaces or other
>> special use characters (!@#$%^&* etc) in their field names.  I need to
>> strip these special characters out completely.  I also need to upper
>> case the valid alpha character that follows any of these special
>> characters.
>>
>> John colby becomes JohnColby
>> %idiotic_Field*name becomes IdioticFieldName
>>
>> Etc.
>>
>> It appears that Regex is the key (I am doing this in VB.Net) but until
>> today I have never really tried to use RegEx and it ain't pretty!
>>
>> Any help in this would be much appreciated.
>>
>> John W. Colby
>> Colby Consulting
>> www.ColbyConsulting.com
>>
>> --
>> 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
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>





More information about the AccessD mailing list