Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Concatenating regexs?

by japhy (Canon)
on May 04, 2001 at 17:48 UTC ( #77954=note: print w/replies, xml ) Need Help??

in reply to Concatenating regexs?

It's hard to just "group" together regexes into one regex, unless you make a "dispatch table".
s/([b-zA-Z]):/\1/g; s/[aV] /A /g; s/a: /A: /g; s/2:/2 %/g; s/9|3:/&/g; s/([aeO])I/\1j/g; tr/QRC@6{/Orx**E/; my %trans; $trans{"$_:"} = $_ for 'b' .. 'z', 'A' .. 'Z'; $trans{"$_ "} = "A " for 'a', 'V'; $trans{"a: "} = "A: "; $trans{"2:"} = "2 %"; $trans{$_} = "&" for 9, '3:'; $trans{"${_}I"} = "${_}j" for 'a', 'e', 'O'; my $regex = join '|', map quotemeta($_), keys %trans; ### WARNING -- this does not allow for nested ### translations (like (A => 'BC', B => 'D') on ### the string "A" will yield "BC", not "DC") $string =~ s/($regex)/$trans{$1}/g; $string =~ tr/QRC@6{/Orx**E/;

japhy -- Perl and Regex Hacker

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://77954]
[stevieb]: did my pull request challenge today, Locale::gettext. Weird layout for a dist, and I have no idea how to use it, but it's always nice when you can force someone else's work be use strict; and use warnings; compliant :)
[stevieb]: ahem... s/no idea how to use it/didn't read enough as to what it's used for/
[stevieb]: interestingly enough, someone else got my Devel::Examine:: Subs distribution for their PRC, and I applaud the change. This dist is extremely complicated and mostly obfu, but the person doing it understood PPI enough to change...
[stevieb]: ...something I had overlooked in the extreme depths of the core functionality. After merging, then a couple of extra tweaks, I still have 100% test coverage. Yay for people who write tests!

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2017-01-24 01:16 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (199 votes). Check out past polls.