[Bioperl-l] A perl regex query

Nathan Haigh n.haigh at sheffield.ac.uk
Tue Sep 18 07:44:14 EDT 2007


An even better way is to use the array as Spiros suggested, but you
should then be able to use that in the regex like this:

my @ra_bad_terms = (  '-D-', 'Cyclic-' );
$string =~ s/@ra_bad_terms//g;

Again you might need escaping with \Q and \E - can't remember off hand.

You might also want to look here:
http://www.perl.com/pub/a/2002/06/04/apo5.html?page=15

Cheers
Nath



Spiros Denaxas wrote:
> Heya, seperate the items you want to remove by a pipe and add the g
> regex flag. For example:
>
> spiros$ echo Cyclic-2,3-bisphospho-D-glycerate | perl -ne ' $_ =~
> s at -D-|Cyclic\-@@g ; print $_ ;'
> 2,3-bisphosphoglycerate
>
> IMHO this is ugly. Best to make an array of all the elements you want
> to remove and then iterate through the array, calling the regex each
> time with a different element. This way it will be much more easy to
> read, debug and maintain.
>
> For example
>
> my $ra_bad_terms = [  '-D-', 'Cyclic-' ] ;
>
> foreach (@$ra_bad_terms) {
>    $string =~ s@$_@@g ;
> }
>
> etc.
>
> Dont forget escaping and \Q \E if needed.
>
> Spiros
>
>
>
> On 9/18/07, neeti somaiya <neetisomaiya at gmail.com> wrote:
>   
>> Hi,
>>
>> This isnt really a bioperl query.
>> But does anyone know how I can substitute all special characters (+ some
>> other things) in a string with nothing in perl?
>> I mean if I have a string like Cyclic-2,3-bisphospho-D-glycerate and I want
>> ouput as bisphosphoglycerate. I want to remove -D-, Cyclic-, 2,3- etc.
>>
>> --
>> -Neeti
>> Even my blood says, B positive
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>>     
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>   



More information about the Bioperl-l mailing list