Mike Martin wrote:

On 27/09/2007, Rob Dixon <[EMAIL PROTECTED]> wrote:

Mike Martin wrote:

Hi I am trying to capture only the first occurence of a charcter
followed by any word ie: in this sample text

!this is a first level heading
!!this is a 2nd level heading

I only want to find the first item and not the second

current code

$line=~s/\!(^\![A-Z][a-z].+)/$1/gc;

it either doesnt capture any ! or takes out the first ! when there is a double

any ideas
Hi Mike. I'm confused as to what you're trying to do, as your regex
doesn't make sense and is a subtitution rather than a pattern match. My
best guess is that you want to elevate all second-level headings to first-
level ones? Maybe something like

  $line =~ s/^!(![a-z].+)/$1/gi;

does what you need.

nope - I am trying to find only strings that start with ! and not
those starting with !!

Then you want

 $line =~ s/^!([a-z].+)/$1/i;

or, better:

 $line =~ s/^!(?=[^!])//;

Rob

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to