Loading ...
Sorry, an error occurred while loading the content.
 

[NTS] Re: regular expression to find anything up to two spaces in a row ...

Expand Messages
  • Eb
    Right you are. I started out commenting on the placement of quatifiers. Then I was on a roll, but forgot about the _not_ two spaces. ... Actually, I would
    Message 1 of 13 , Jun 21, 2011
      Right you are.

      I started out commenting on the placement of quatifiers.

      Then I was on a roll, but forgot about the _not_ two spaces.

      --- In ntb-scripts@yahoogroups.com, Axel Berger <Axel-Berger@...> wrote:
      > Nope. What you suggest equals "two instances of 'not space'". What Don
      > wants is "anything but two spaces in row". Quite different.
      >
      > All your finds will have a length of exactly two and they can't include
      > even a single space.
      >
      > There really is no single-step solution for this, but then, as long


      Actually, I would expect the assertion:

      (?= )

      to find a string ending in 2 spaces, without including the two spaces in the match.

      Eb
    • Axel Berger
      ... Yes, you re right and that s probably better than my ^!Find (?s)(.+?)( {2,}) RSTI1 but it has the same problem. Don specified ... which I took to mean
      Message 2 of 13 , Jun 21, 2011
        Eb wrote:
        > Actually, I would expect the assertion:
        > (?= )
        > to find a string ending in 2 spaces, without including the
        > two spaces in the match.

        Yes, you're right and that's probably better than my

        ^!Find "(?s)(.+?)( {2,})" RSTI1

        but it has the same problem. Don specified
        > everything and anything unless until I
        > encounter two spaces in a row ...
        which I took to mean the two spaces may or may not occur, as is usual
        when using negative classes. If they're certain to do, then things get
        much easier.

        Axel
      • Don
        Yes the two spaces are certain to occur :-) I am limited I supposed in my understanding so I didn t make the assumption you made. Now that you explain it like
        Message 3 of 13 , Jun 21, 2011
          Yes the two spaces are certain to occur :-)

          I am limited I supposed in my understanding so I didn't make the
          assumption you made. Now that you explain it like that I guess it makes
          sense. What I am trying to do is use two spaces as a delimiter in
          essence. I will actually be discarding the spaces as unnecessary in
          what I am doing.

          Off to look up (?= ) and see what it means.

          On 6/21/2011 7:54 PM, Axel Berger wrote:
          > Eb wrote:
          >> Actually, I would expect the assertion:
          >> (?= )
          >> to find a string ending in 2 spaces, without including the
          >> two spaces in the match.
          >
          > Yes, you're right and that's probably better than my
          >
          > ^!Find "(?s)(.+?)( {2,})" RSTI1
          >
          > but it has the same problem. Don specified
          >> everything and anything unless until I
          >> encounter two spaces in a row ...
          > which I took to mean the two spaces may or may not occur, as is usual
          > when using negative classes. If they're certain to do, then things get
          > much easier.
          >
          > Axel
          >
          >
          > ------------------------------------
          >
          > Fookes Software: http://www.fookes.com/
          > NoteTab website: http://www.notetab.com/
          > NoteTab Discussion Lists: http://www.notetab.com/groups.php
          >
          > ***
          > Yahoo! Groups Links
          >
          >
          >
          >
        • Don
          From Regex Buddy (my newest friend ...): Positive lookahead works just the same. q(?=u) matches a q that is followed by a u, without making the u part of the
          Message 4 of 13 , Jun 21, 2011
            From Regex Buddy (my newest friend ...):

            "Positive lookahead works just the same. q(?=u) matches a q that is
            followed by a u, without making the u part of the match. The positive
            lookahead construct is a pair of round brackets, with the opening
            bracket followed by a question mark and an equals sign. You can use any
            regular expression inside the lookahead. Any valid regular expression
            can be used inside the lookahead."

            If I understand correctly, I can then actually do this:
            (?=( ))
            and create a back-reference if I wish?

            Learning as I go here :-) and it's fun. Thanks Axel and Eb!


            On 6/21/2011 7:54 PM, Axel Berger wrote:
            > Eb wrote:
            >> Actually, I would expect the assertion:
            >> (?= )
            >> to find a string ending in 2 spaces, without including the
            >> two spaces in the match.
            >
            > Yes, you're right and that's probably better than my
            >
            > ^!Find "(?s)(.+?)( {2,})" RSTI1
            >
            > but it has the same problem. Don specified
            >> everything and anything unless until I
            >> encounter two spaces in a row ...
            > which I took to mean the two spaces may or may not occur, as is usual
            > when using negative classes. If they're certain to do, then things get
            > much easier.
            >
            > Axel
            >
            >
            > ------------------------------------
            >
            > Fookes Software: http://www.fookes.com/
            > NoteTab website: http://www.notetab.com/
            > NoteTab Discussion Lists: http://www.notetab.com/groups.php
            >
            > ***
            > Yahoo! Groups Links
            >
            >
            >
            >
          • John Shotsky
            [Off to look up (?= ) and see what it means.] I use it often. It is the inverse of K - which doesn t capture anything before, but it evaluates it. (?=), when
            Message 5 of 13 , Jun 21, 2011
              [Off to look up (?= ) and see what it means.]

              I use it often. It is the inverse of \K - which doesn't capture anything before, but it evaluates it. (?=), when used in
              a regex, is exactly the same, meaning anything that follows is not captured, but is evaluated.



              So, this:

              "this that"

              Run on:

              ^!Replace "this\x20\K(?=that)" >> "with\x20" ARSW

              Produces "this with that"

              Pretty handy for inserting something without any capturing.

              Regards,

              John



              From: ntb-scripts@yahoogroups.com [mailto:ntb-scripts@yahoogroups.com] On Behalf Of Don
              Sent: Tuesday, June 21, 2011 18:23
              To: ntb-scripts@yahoogroups.com
              Subject: Re: [NTS] Re: regular expression to find anything up to two spaces in a row ...





              Yes the two spaces are certain to occur :-)

              I am limited I supposed in my understanding so I didn't make the
              assumption you made. Now that you explain it like that I guess it makes
              sense. What I am trying to do is use two spaces as a delimiter in
              essence. I will actually be discarding the spaces as unnecessary in
              what I am doing.

              Off to look up (?= ) and see what it means.

              On 6/21/2011 7:54 PM, Axel Berger wrote:
              > Eb wrote:
              >> Actually, I would expect the assertion:
              >> (?= )
              >> to find a string ending in 2 spaces, without including the
              >> two spaces in the match.
              >
              > Yes, you're right and that's probably better than my
              >
              > ^!Find "(?s)(.+?)( {2,})" RSTI1
              >
              > but it has the same problem. Don specified
              >> everything and anything unless until I
              >> encounter two spaces in a row ...
              > which I took to mean the two spaces may or may not occur, as is usual
              > when using negative classes. If they're certain to do, then things get
              > much easier.
              >
              > Axel
              >
              >
              > ------------------------------------
              >
              > Fookes Software: http://www.fookes.com/
              > NoteTab website: http://www.notetab.com/
              > NoteTab Discussion Lists: http://www.notetab.com/groups.php
              >
              > ***
              > Yahoo! Groups Links
              >
              >
              >
              >





              [Non-text portions of this message have been removed]
            • Art Kocsis
              John, Not quite. Look ahead and look behind assertions are very useful, I agree but K and (?
              Message 6 of 13 , Jun 22, 2011
                John,

                Not quite. Look ahead and look behind assertions are very useful, I agree but
                \K and (?<=...) [the positive look behind assertion] are NOT EXACTLY the
                same. The big difference (and what makes \K so much better), is that the
                escape sequence \K allows variable length sub patterns whereas the positive/
                negative look ahead/look behind assertions all require fixed length sub
                patterns.

                Namaste', Art

                At 06/21/2011 19:12, John wrote:
                >[Off to look up (?= ) and see what it means.]
                >
                >I use it often. It is the inverse of \K - which doesn't capture anything
                >before, but it evaluates it.
                >(?=), when used in a regex, is exactly the same, meaning anything that
                >follows is not captured,
                > but is evaluated.
              Your message has been successfully submitted and would be delivered to recipients shortly.