in reply to Re: Multiline Mode
in thread replacing text in specific tags

Hi,

I have a file with the following text:

INPUT:

{B001:B001}
{B002:B002}
{B003:B003}
{B00kr:B004}
{B00krup:B005}
{B00krupa:B006}
{B007:B007}
{B008:B008}

and my code is producing the following output:

OUTPUT:

1:1:1
2:2:2
3:3:3
kr:4:
krup:5:
krupa:6:
7:7:7
8:8:8

i.e., for 4,5 and 6 the third value is missing, pls review the code and suggest me what to do.

CODE:

while(<IN>) { if(/\{B00(.+?):B00(.+?)\}/){ $values{$2} = $1; print "$1:$2:$values{$2}\n"; } }

I guess, $values{$2} takes only numeric argument

But I need this to search with the $2 argument only, because I need to replace the text of an another file as

from

<x-ref refid="B00kr,B00krup,B00krupa">

to

<x-ref refid="B004,B005,B005">

Replies are listed 'Best First'.
Re: arrays and hash tables
by CombatSquirrel (Hermit) on Sep 25, 2003 at 18:02 UTC
    It works for me. Execute the following:
    @lines = qw( {B001:B001} {B002:B002} {B003:B003} {B00kr:B004} {B00krup:B005} {B00krupa:B006} {B007:B007} {B008:B008} ); for (@lines) { if(/\{B00(.+?):B00(.+?)\}/){ $values{$2} = $1; print "$1:$2:$values{$2}\n"; } } __END__ 1:1:1 2:2:2 3:3:3 kr:4:kr krup:5:krup krupa:6:krupa 7:7:7 8:8:8
    CombatSquirrel.
    Entropy is the tendency of everything going to hell.

      hi,

      I have a ascii text file with the following text

      Aaaa <xx>BBBBB</xx> Ccccc

      Bbbb <xx>CCCCC</xx> Ddddd

      i need to just change the text between <xx> tag to lowercase.

      Please help me.

        I am really sorry to say this, but have you even bothered to get and look into Jeffrey Friedl's Mastering Regular Expressions? You have asked a lot of similar questions along the lines of "I want to do this, please tell me how to do it".
        The Monastery is a place for you to learn something by looking at the answers of specific questions, but is by no means a substitute for a good Perl/RegEx book or a tutorial. Browse through the Tutorials section. Have a look at the book reviews. And consider starting a new thread when you are asking a question that is not related to the thread you are replying to, especially if you are replying to a post that is already 56 days old.
        Sorry if this was a bit harsh, but this is how I feel and I suppose I should at least inform you about it.
        Have a nice day.
        Cheers,
        CombatSquirrel.
        Entropy is the tendency of everything going to hell.