A little regex help?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ivan Marsh

    A little regex help?

    Hey Folks,

    This isn't actually a perl question but since you folks ar the regex
    experts I thought you might be able to help.

    I want to do a search and replace in my text editor (that supports regex)
    for any line that begins with print( and ends with "); and replace the
    ending "); with \n"); where the line doesn't alredy end in \n");

    ex:

    print("foo");

    becomes:

    print("foo\n");

    Thanks.

    --
    i.m.
    All views, opinions and alleged facts expressed by this tactless moron are
    protected by the constitution of the United States of America and should be
    taken as good natured and friendly unless specifically stated otherwise.

  • JamesW

    #2
    Re: A little regex help?

    $line='print ("foo")';

    $line=~s/^(print #anchor to beginning of string
    .* #match any text
    \)) #match closing parenthesis (need to escape
    character)
    /$1\n/x; #having wrapped match in () can use memory
    variable
    #and append newline.

    print $line; #print ("foo")\n

    Ivan, not sure of the 'flavour' of your regex machine so will need to
    look up how to use backreferences. Probably \1. The x modifier at
    the end is just so I can comment the code for explanations.

    s/^(print.*\))/$1\n/;

    hth
    j



    "Ivan Marsh" <annoyed@you.no w> wrote in message news:<pan.2003. 07.03.17.08.01. 784844@you.now> ...[color=blue]
    > Hey Folks,
    >
    > This isn't actually a perl question but since you folks ar the regex
    > experts I thought you might be able to help.
    >
    > I want to do a search and replace in my text editor (that supports regex)
    > for any line that begins with print( and ends with "); and replace the
    > ending "); with \n"); where the line doesn't alredy end in \n");
    >
    > ex:
    >
    > print("foo");
    >
    > becomes:
    >
    > print("foo\n");
    >
    > Thanks.[/color]

    Comment

    Working...