Regular Expression to Replace UPPER Case Text with lower case text

Discussion in 'Perl Misc' started by penny, Feb 18, 2008.

  1. penny

    penny Guest

    Is there a way in Regular Expressions to convert a string that is all
    in upper case - and replace it with it's lower case equivalent?

    I can do something like ([A-Z][A-Z]+\x?) to match any given word and
    reference it as \1, however without using programming language lcase
    or LOWER functions on it - how can I use reg ex to convert the text to
    it's lower case equivalent??


    Thanks - (I use coldfusion but the regular expression syntax is
    similar)
    penny, Feb 18, 2008
    #1
    1. Advertising

  2. Re: Regular Expression to Replace UPPER Case Text with lower casetext

    penny wrote:
    > Is there a way in Regular Expressions to convert a string that is all
    > in upper case - and replace it with it's lower case equivalent?
    >
    > I can do something like ([A-Z][A-Z]+\x?) to match any given word and
    > reference it as \1, however without using programming language lcase
    > or LOWER functions on it - how can I use reg ex to convert the text to
    > it's lower case equivalent??


    You can't. Regular expressions match or don't match. To change the
    contents of a string, you need functions or operators (such as the s///
    operator).

    --
    Gunnar Hjalmarsson
    Email: http://www.gunnar.cc/cgi-bin/contact.pl
    Gunnar Hjalmarsson, Feb 18, 2008
    #2
    1. Advertising

  3. Re: Regular Expression to Replace UPPER Case Text with lower casetext

    Abigail wrote:
    > penny () wrote on VCCLXXXIV September MCMXCIII in
    > <URL:news:>:
    > "" Thanks - (I use coldfusion but the regular expression syntax is
    > "" similar)
    >
    > Oh, sure. Well, that could be a reason to avoid 'lc'. I guess your option
    > is to match each and every 'A', replace it with an 'a', match each and
    > every 'B', replace it with a 'b', etc. Hopefully, you don't have to many
    > different characters in your text.


    tr/A-Z/a-z/

    But there is of course a risk that ColdFusion doesn't have a tr///
    operator either.

    --
    Gunnar Hjalmarsson
    Email: http://www.gunnar.cc/cgi-bin/contact.pl
    Gunnar Hjalmarsson, Feb 18, 2008
    #3
  4. penny

    RK_78 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 18, 2:42 am, penny <> wrote:
    > Is there a way in Regular Expressions to convert a string that is all
    > in upper case - and replace it with it's lower case equivalent?
    >
    > I can do something like ([A-Z][A-Z]+\x?) to match any given word and
    > reference it as \1, however without using programming language lcase
    > or LOWER functions on it - how can I use reg ex to convert the text to
    > it's lower case equivalent??
    >
    > Thanks - (I use coldfusion but the regular expression syntax is
    > similar)


    Hi Penny ;

    Try This

    my $InFile=$ARGV[0] || die("**ERROR** -> Usage: $0 InputFile
    OutputFile \n");
    my $OutFile=$ARGV[1] || die("**ERROR** -> Usage: $0 InputFile
    OutputFile \n");

    open(INFILE,"< $InFile") || die "cannot open $InFile : $!"; # $!
    Stores the error message
    open(OUTFILE,"> $OutFile") || die "cannot open $OutFile : $!";

    my $line;

    while ($line=<INFILE>) {
    $line =~ tr/A-Z/a-z/;
    printf(OUTFILE $line);
    }

    close(INFILE);
    close(OUTFILE);



    The key point here is the tr/// transliteration operator.

    Better ideas folks ?

    Riad.
    RK_78, Feb 18, 2008
    #4
  5. penny

    ccc31807 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 18, 9:34 am, RK_78 <> wrote:
    > Better ideas folks ?


    Ditch CF and use Perl.

    ;-)

    CC
    ccc31807, Feb 18, 2008
    #5
  6. >>>>> "p" == penny <> writes:

    p> Is there a way in Regular Expressions to convert a string that
    p> is all in upper case - and replace it with it's lower case
    p> equivalent?

    There's a very simple way in Perl, but it doesn't use a regular expression.

    p> Thanks - (I use coldfusion but the regular expression syntax is
    p> similar)

    Then why aren't you asking in a ColdFusion newsgroup?

    Charlton


    --
    Charlton Wilbur
    Charlton Wilbur, Feb 18, 2008
    #6
  7. penny

    penny Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    Thanks for all the replies - For those keeping Score at home:
    Replace:
    "([A-Z]){1}([[:upper:]]+)"
    WITH:
    "\1\L\2"

    The reason I didn't go the CFusion newsgroup first is that CF runs
    with a limited perl engine and I figured you guys would know more
    about regex than the cf group (eek)

    But turns out it can be done and very easily with one line of
    REReplace.

    The application is written in CF so - sorry- no chance of ditching
    cf ;)

    This is a back reference example and here is the Break Down:
    First 'group' is the
    ([A-Z]){1} - This means exactly 1 Single Upper Case Character and the
    () parenthesis is so that I can Reference this Match later in the
    Replace with string as \1
    ([[:upper:]]+) - This means 1 or more upper case characters and the ()
    parenthesis is so that I can reference this Match later as \2

    Then I replace this string with
    \1 - this means the 'first' match from my () group (which will be a
    single upper case character)
    \L\2 - Means the Rest of the String that I got from my second () match
    above as \2 will be all LOWER case

    Thanks
    penny, Feb 18, 2008
    #7
  8. Re: Regular Expression to Replace UPPER Case Text with lower case text

    ccc31807 <> wrote:
    > On Feb 18, 9:34 am, RK_78 <> wrote:
    >> Better ideas folks ?

    >
    > Ditch CF and use Perl.



    What, and get laughed at?


    --
    Tad McClellan
    email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
    Tad J McClellan, Feb 18, 2008
    #8
  9. Re: Regular Expression to Replace UPPER Case Text with lower case text

    >>>>> "p" == penny <> writes:

    p> The reason I didn't go the CFusion newsgroup first is that CF
    p> runs with a limited perl engine and I figured you guys would
    p> know more about regex than the cf group (eek)

    Er, no, while CF may have a PCRE library glommed into it somewhere, it
    has no Perl content at all; and "Perl compatible" regular expressions aren't.

    Charlton


    --
    Charlton Wilbur
    Charlton Wilbur, Feb 19, 2008
    #9
  10. Re: Regular Expression to Replace UPPER Case Text with lower case text

    >>>>> "T" == Tad J McClellan <> writes:

    T> ccc31807 <> wrote:
    >> On Feb 18, 9:34 am, RK_78 <> wrote:


    >>> Better ideas folks ?


    >> Ditch CF and use Perl.


    T> What, and get laughed at?

    Still much cheaper, and easier on the liver, than the high blood
    pressure medication and antidepressants that go along with long-term
    ColdFusion exposure.

    Charlton


    --
    Charlton Wilbur
    Charlton Wilbur, Feb 19, 2008
    #10
  11. penny

    ccc31807 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 18, 5:31 pm, Tad J McClellan
    > > Ditch CF and use Perl.

    >
    > What, and get laughed at?


    In the past eight years, I have been constructing web apps using a
    variety of technologies, either by choice or because of stated
    requirements, including Perl, CF, .NET, JSP, and Python. Recently,
    under the influence of writings by Paul Graham and Slava Akhmechet, I
    have developed a high degreee of interest in using Lisp. See the links
    below.

    Using Perl for web apps is controversial to say the least, and I can
    sympathize with your little joke. You DO get laughed at if you use
    Perl, and that's not a joke. However, Perl has some advantages over
    these other technologies, as well as some disadvantages.

    I understand that this is OT, but I'm just wondering ... Is there any
    good reason I shouldn't learn how to develop web apps in Lisp? I'm
    just now taking my first baby steps in constructing Lisp scripts that
    spit out HTML with data drawn from data stores, and as far as I can
    tell, Lisp potentially has some strengths that Perl does not have (or
    CF, .NET, JSP, Python, or any of the others.)

    CC

    Links:
    http://paulgraham.com/avg.html
    http://lib.store.yahoo.net/lib/paulgraham/bbnexcerpts.txt
    http://www.defmacro.org/ramblings/fp.html
    http://www.defmacro.org/ramblings/continuations-web.html
    ccc31807, Feb 19, 2008
    #11
  12. Re: Regular Expression to Replace UPPER Case Text with lower case text

    RK_78 <> wrote:
    >On Feb 18, 2:42 am, penny <> wrote:
    >> Is there a way in Regular Expressions to convert a string that is all
    >> in upper case - and replace it with it's lower case equivalent?

    >
    > $line =~ tr/A-Z/a-z/;
    >
    >The key point here is the tr/// transliteration operator.


    How does A-Z or the tr/// expression for that matter handle non-English
    letters?
    What about upper case letters that don't have a corresponding lower case
    letter? I don't know if such a letter exists. It does for the other
    direction, e.g. the Geman sharp s (ß) which is capitalized as double "SS".
    Example: Straße ==> STRASSE

    Similar examples exist in other languages

    I cannot imagine that this tr/// expression will handle these correctly.

    jue
    Jürgen Exner, Feb 19, 2008
    #12
  13. Re: Regular Expression to Replace UPPER Case Text with lower case text

    >>>>> "cc" == ccc31807 <> writes:

    cc> Using Perl for web apps is controversial to say the least, and
    cc> I can sympathize with your little joke. You DO get laughed at
    cc> if you use Perl, and that's not a joke. However, Perl has some
    cc> advantages over these other technologies, as well as some
    cc> disadvantages.

    Over the past 15 years, I've been involved in a variety of online
    endeavors, including a significant amount of web software development.
    The notion that using Perl for web apps is *controversial* is,
    frankly, ludicrous.

    What it boils down to is this: if you have competent developers who
    choose the language and environment they work in on their technical
    merits, your web application will work well. If you have incompetent
    developers, or you choose the language and environment based on
    marketing or managers' perceptions rather than technical merits, your
    web application will not work well.

    I have a whole series of anecdotes to illustrate this, but I'll leave
    you with punch lines.

    "We can't market anything based on Linux, who's heard of Linux? We'll
    build it on Microsoft SQL Server instead." -- Project was 200% over
    schedule and 300% over budget before the Microsoft plans were scrapped.

    "We can't use Ruby on Rails for this. Who takes something with a name
    like that seriously?" -- Company is foundering, after spending ~ $1
    million patching a broken system instead of replacing it, because the
    quoted manager was too risk averse to try an agile framework and
    didn't have the budget to hire 20 Java monkeys for the approved
    corporate approach.

    "Perl can't do this, so I've given it to the Java consultants." --
    The team of a dozen Java consultants (who were not so much
    *incompetent* as *self-interested*, and were thus more interested in
    stretching out the contract as long as possible) took 6 months to
    deliver the specified application, which was irrelevant by then as I
    had taken a week of downtime to solve that particular problem and four
    others.

    The person who laughs at you for using Perl is the person you will
    leave in your dust, assuming you don't heed his advice.

    cc> I understand that this is OT, but I'm just wondering ... Is
    cc> there any good reason I shouldn't learn how to develop web
    cc> apps in Lisp? I'm just now taking my first baby steps in
    cc> constructing Lisp scripts that spit out HTML with data drawn
    cc> from data stores, and as far as I can tell, Lisp potentially
    cc> has some strengths that Perl does not have (or CF, .NET, JSP,
    cc> Python, or any of the others.)

    From a technical point of view, there's no reason to avoid Lisp in web
    development. From a practical point of view, if you ever intend to
    hand this code off to someone else or to work with someone else,
    you'll need to find a Lisp enthusiast.

    And any theoretical strengths Lisp might have once had have long since
    been stolen by other languages; the practical ones, well, let's just
    say that the common criticism of Perl, that it's possible to write
    write-only code, is multiplied a thousandfold when you start dealing
    with Lisp's macro system. And then, on top of that, you have the
    rabid Lisp fanbase -- their own worst enemy.

    But hey, good luck with that.

    Charlton


    --
    Charlton Wilbur
    Charlton Wilbur, Feb 19, 2008
    #13
  14. penny

    ccc31807 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 19, 1:35 pm, Charlton Wilbur
    > The notion that using Perl for web apps is *controversial* is,
    > frankly, ludicrous.


    'Controversial' in the sense of causing controversary. As your own
    punch lines demonstrate. Suffice it to say that people have strong
    opinions about the (un)suitability of Perl for web apps, or any other
    kind of apps for that matter.

    > The person who laughs at you for using Perl is the person you will
    > leave in your dust, assuming you don't heed his advice.


    Just got back to work after several hours out of the office and had my
    ears filled with the INSTR() function in Access. Seems that they
    needed to match two rather large text files with 'MTH-1101' in one
    file with 'MTH1101' in the other file, and ended up using Access to
    match the rows. Yeah, I hear you!

    > From a technical point of view, there's no reason to avoid Lisp in web
    > development. From a practical point of view, if you ever intend to
    > hand this code off to someone else or to work with someone else,
    > you'll need to find a Lisp enthusiast.


    Same with Perl, as my course matching story demonstrates.

    > And any theoretical strengths Lisp might have once had have long since
    > been stolen by other languages; the practical ones, well, let's just
    > say that the common criticism of Perl, that it's possible to write
    > write-only code, is multiplied a thousandfold when you start dealing
    > with Lisp's macro system. And then, on top of that, you have the
    > rabid Lisp fanbase -- their own worst enemy.


    Agree with every thing you said, except that Lisp, like Perl and other
    technologies, has tasks for which it is suited. Those rabid fans? Just
    because they are rabid doesn't mean that everything they claim is
    false.

    CC
    ccc31807, Feb 19, 2008
    #14
  15. Re: Regular Expression to Replace UPPER Case Text with lower case text

    ccc31807 <> writes:

    > I understand that this is OT, but I'm just wondering ... Is there any
    > good reason I shouldn't learn how to develop web apps in Lisp? I'm
    > just now taking my first baby steps in constructing Lisp scripts that
    > spit out HTML with data drawn from data stores, and as far as I can
    > tell, Lisp potentially has some strengths that Perl does not have (or
    > CF, .NET, JSP, Python, or any of the others.)


    Lisp is a great language to develop in, so why not? You may have to
    spend more time to find (and possibly fix) the right mix of libraries to
    use for web apps but there is a lot of interesting web stuff going on in
    the Lisp world.

    http://www.lispcast.com/ has some interesting videos (the code is all
    pretty low-level, though - there are much more comple CL web / model
    frameworks out there).

    --
    Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
    Joost Diepenmaat, Feb 19, 2008
    #15
  16. Re: Regular Expression to Replace UPPER Case Text with lower case text

    ccc31807 <> wrote:
    > On Feb 18, 5:31 pm, Tad J McClellan
    >> > Ditch CF and use Perl.

    >>
    >> What, and get laughed at?



    > Using Perl for web apps is controversial to say the least, and I can
    > sympathize with your little joke.



    Errr, it was _your_ little joke.


    http://groups.google.com/group/comp.lang.perl.misc/msg/a4e4eb0867618bee


    --
    Tad McClellan
    email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
    Tad J McClellan, Feb 20, 2008
    #16
  17. Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Tue, 19 Feb 2008 18:08:40 +0000, Jürgen Exner wrote:

    >>The key point here is the tr/// transliteration operator.

    >
    > How does A-Z or the tr/// expression for that matter handle non-English
    > letters?
    > What about upper case letters that don't have a corresponding lower case
    > letter? I don't know if such a letter exists. It does for the other
    > direction, e.g. the Geman sharp s (ß) which is capitalized as double
    > "SS". Example: Straße ==> STRASSE
    >
    > Similar examples exist in other languages
    >
    > I cannot imagine that this tr/// expression will handle these correctly.


    In fact, perldoc perlop warns for this and tells you to use lc.

    M4
    Martijn Lievaart, Feb 20, 2008
    #17
  18. penny

    ccc31807 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 19, 7:10 pm, Tad J McClellan <> wrote:

    > >> What, and get laughed at?

    > > Using Perl for web apps is controversial to say the least, and I can
    > > sympathize with your little joke.

    >
    > Errr, it was _your_ little joke.


    You're right, I had forgotten I said that. But like all jokes, it
    contains a grain of truth. My city has three big IT concentrattions,
    in banking, insurance, and the military. In the first two, the
    developers are divided into the Java and .NET camps. I occasionally
    attend one of the various user group meetings that these people
    frequent, and on occassion participate in the discussion. I remember
    at least once when discussing the conversion of a bank's records (that
    were presented as CSV files) I suggested that Perl might do well at
    the conversion, which was met (litteraly) by guffaws. "You're simply
    joking, everybody knows that Perl can't take a file, change a few
    things, and write it out to another file, you've got to use a serious
    language for that kind of job, like Java or Visual Basic."

    I have found by experience that journeyman programmers, at least in my
    city, regard Perl as a joke, unable to do anything serious. Of course,
    they don't know the language, and typically they have the philosophy
    that you should know only one language and know it well, otherwise you
    will merely be confused. Some project managers have told me, using
    these words, that they wouldn't hire any programmer that knew more
    than one language. And this is at a company that yesterday had a share
    price of $62.65 on a volume of 2,329,871. Managers have asked me
    several different times, "Why use Perl when you can use ColdFusion?"
    as if to say, "Why use an axe when you have a chainsaw handy?" The
    perception here is that ColdFusion is a capable technology while Perl
    is not.

    In Paul Graham's essay 'Beating the Average' he claims that his
    success was due to his choice of technology. I think that he is wrong,
    but believe that the choice of a technology can be one very important
    factor of success (others might be a growing market, customer service,
    lots of hard work, and a bit of luck.)

    I recently did an analysis of the employment postings for nine
    different languages. Here are some raw numbers:
    Java ~15,400 - 20,400
    ..NET ~10,000 - 15,000
    C/C++ ~ 8,000 - 12,000
    Perl ~ 6,000 - 8,000

    By contrast, CF was around 300 and Lisp was around zero. I know that
    the numbers of open positions doesn't mean much, but it's at least a
    rough gauge of visibility of different languages among employers. In
    my area, the only two players are Java and .NET (except the military,
    actually the largest single employer, and they advertise for Ada, C/C+
    +, and (yes) Perl programmers.) Also, there's quite a bit of COBOL
    still left and one of the area colleges has a COBOL certificate
    program.

    For the reasons I have stated elsewhere, I am making a non-trivial
    effort to learning Lisp. I expect that people will laugh at me for
    this, as well.

    CC
    ccc31807, Feb 20, 2008
    #18
  19. Re: Regular Expression to Replace UPPER Case Text with lower case text

    >>>>> "cc" == ccc31807 <> writes:

    cc> I occasionally attend one of the various user group meetings
    cc> that these people frequent, and on occassion participate in
    cc> the discussion. I remember at least once when discussing the
    cc> conversion of a bank's records (that were presented as CSV
    cc> files) I suggested that Perl might do well at the conversion,
    cc> which was met (litteraly) by guffaws. "You're simply joking,
    cc> everybody knows that Perl can't take a file, change a few
    cc> things, and write it out to another file, you've got to use a
    cc> serious language for that kind of job, like Java or Visual
    cc> Basic."

    cc> I have found by experience that journeyman programmers, at
    cc> least in my city, regard Perl as a joke, unable to do anything
    cc> serious. Of course, they don't know the language, and
    cc> typically they have the philosophy that you should know only
    cc> one language and know it well, otherwise you will merely be
    cc> confused. Some project managers have told me, using these
    cc> words, that they wouldn't hire any programmer that knew more
    cc> than one language.

    So they're idiots. Why do you care about the opinions of idiots?

    cc> I recently did an analysis of the employment postings for nine
    cc> different languages. Here are some raw numbers:

    .....that mean absolutely nothing. I've seen the same position
    advertised over a dozen times because the hiring manager was
    desperate, and contacted over a dozen recruiters; I've seen a dozen
    positions in a company advertised with one ad.

    To reiterate: you're putting up an elaborate rationalization to
    justify that people who are demonstrably idiots are laughing at you,
    as if the problem is Perl's. Consider, rather, that the problem is
    *you*, in that you give far too much credence to the opinion of
    idiots.

    Charlton



    --
    Charlton Wilbur
    Charlton Wilbur, Feb 20, 2008
    #19
  20. penny

    ccc31807 Guest

    Re: Regular Expression to Replace UPPER Case Text with lower casetext

    On Feb 20, 12:05 pm, Charlton Wilbur <> wrote:
    > cc> different languages. Here are some raw numbers:
    >
    > ....that mean absolutely nothing. I've seen the same position
    > advertised over a dozen times because the hiring manager was
    > desperate, and contacted over a dozen recruiters; I've seen a dozen


    Not exactly. What these numbers represent are advertised positions. I
    think they're correct to an order of magnitude. Don't you think that
    there are more Java jobs than, say, Python jobs, and more Python jobs
    than, say, Erlang jobs?

    > positions in a company advertised with one ad.
    >
    > To reiterate: you're putting up an elaborate rationalization to
    > justify that people who are demonstrably idiots are laughing at you,
    > as if the problem is Perl's.


    You have completely misunderstood what I said. The people I mentioned
    are not idiots, they're simply ignorant. These people have well
    paying, responsible jobs, but the jobs are MANAGEMENT jobs, not
    technical or engineering jobs. Typically they have a business degree
    with one course in VB and one course in SQL, and they are convinced
    that they know everything there is to know about technology. Why?
    Because their opinions have been validated again and again by real
    world experience. Again, this is managerial and business experience,
    not engineering or technical experience. These are bankers and
    marketers and insurance executives, not programmers or software
    engineers.

    (Tuesday, I asked one of these if he was a vi man or an emacs man, and
    he looked at me as if I were stark, raving mad. The ONLY IDE he has
    ever heard of is Visual Studio.)

    > Consider, rather, that the problem is
    > *you*, in that you give far too much credence to the opinion of
    > idiots.


    In the first place, they aren't idiots but middle and uppermid level
    managers who have done well in their careers. In the second place, I
    evangelize my beliefs, which basically are Perl and Python in a BSD or
    Linux server connected to a Postgres or MySQL DB served up by Apache.

    CC
    ccc31807, Feb 20, 2008
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    4
    Views:
    700
    Jürgen Exner
    Dec 7, 2004
  2. Janice

    lower case to upper case

    Janice, Dec 10, 2004, in forum: C Programming
    Replies:
    17
    Views:
    1,161
    Richard Bos
    Dec 14, 2004
  3. Peter Vanderhaden
    Replies:
    5
    Views:
    123
    SpringFlowers AutumnMoon
    Sep 30, 2007
  4. Replies:
    4
    Views:
    116
    Jürgen Exner
    Dec 7, 2004
  5. BlackHelicopter
    Replies:
    0
    Views:
    502
    BlackHelicopter
    Jan 31, 2013
Loading...

Share This Page