in reply to look for substrings and getting their location

how do I count the number of times a specific string like: "GUAUG" occures in each line

I have a question:

For a string in your file that looks like GUAUGUAUGUAUG, how many matches do you want to count?

dave

Replies are listed 'Best First'.
Re: Re: look for substrings and getting their location
by wolffm (Novice) on May 09, 2004 at 15:38 UTC
    all of them + location of the beginng of each one
      I think you missed the point to the followup question. Not a Number was asking if you want overlapping matches to count too. In other words, we already know you want to count all of the "GUAUG"'s in a string like: "GUAUGGUAUG".

      But do you also want to find two matches in a string with overlapping keywords? Like this: "GUAUGUAUG"... If that's the case, your RE will need zero-width lookahead. Something like this:

      /G(?=UAUG)/g

      That way the "pointer" is advanced one character at a time rather than one keyword at a time, thus allowing for overlapping matches.

      You can find the position (in list context) with pos. In scalar context, the special variables @+ and @- will be helpful. See perlvar for a description of them.

      On the other hand, if you want to find only one match in cases where the sequence appears to overlap, you'll have to define whether you want the left-side of the overlap to match, or the right side.


      Dave