<div dir="ltr">Thanks a lot! <div><br></div><div>How can I find out the number exhausted repetitions?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/24 Vyacheslav Levytskyy <span dir="ltr"><<a href="mailto:v.levytskyy@yahoo.com" target="_blank">v.levytskyy@yahoo.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hello,<br>
      <br>
      According to 're' module documentation, "the quantifiers are
      "greedy", that is, they match as much as possible (up to the
      maximum number of permitted times)". This seems to be a problem
      with your case. The regex you are using seems a bit problematic,
      forcing 're' to exhausting repetitions.<br>
      <br>
      As an option, you can use 'ungreedy' option, making only some of
      quantifiers greedy via following them by "?". See for example:<br>
      re:run(<<"foo bar is a foo bar is a big yellow boat or
      sub">>, <<"^foo (\\w(\\w+| )*) is a (\\w(\\w+?|
      )*?)">>, [ungreedy, global, {capture, [1,3], binary}]).<br>
      {match,[[<<"bar">>,<br>
               <<"foo bar is a big yellow boat or sub">>]]}<br>
      <br>
      Best regards,<br>
      Vyacheslav Levytskyy<div><div class="h5"><br>
      <br>
      On 23.10.2013 22:26, Alexander Petrovsky wrote:<br>
    </div></div></div>
    <blockquote type="cite"><div><div class="h5">
      <div dir="ltr">Hi!
        <div><br>
        </div>
        <div>I have the regex "^foo (\\w+(\\w* *)*) is an (\\w+(\\w*
          *)*)", and I get strange behaviour when I do:</div>
        <div><br>
        </div>
        <div>1> re:run(<<"foo bar is a foo bar is a big yellow
          boat or">>, <<"^foo (\\w+(\\w* *)*) is a
          (\\w+(\\w* *)*)">>, [global, {capture, [1,3], binary}]).</div>
        <div>{match,[[<<"bar is a foo bar">>,<<"big
          yellow boat or">>]]}</div>
        <div><br>
        </div>
        <div>2> re:run(<<"foo bar is a foo bar is a big yellow
          boat or sub">>, <<"^foo (\\w+(\\w* *)*) is a
          (\\w+(\\w* *)*)">>, [global, {capture, [1,3], binary}]).</div>
        <div>nomatch </div>
        <div><br>
        </div>
        <div>I tested this regexp in clojure and python:</div>
        <div><br>
        </div>
        <div>
          <div>=> (re-matches #"foo (\w+(\w* *)*) is a (\w+(\w* *)*)"
            "foo bar is a foo bar is a big yellow boat or")</div>
          <div>["foo bar is a foo bar is a big yellow boat or" "bar is a
            foo bar" "" "big yellow boat or" ""]</div>
          <div><br>
          </div>
          <div>=> (re-matches #"foo (\w+(\w* *)*) is a (\w+(\w* *)*)"
            "foo bar is a foo bar is a big yellow boat or sub")</div>
          <div>["foo bar is a foo bar is a big yellow boat or sub" "bar
            is a foo bar" "" "big yellow boat or sub" ""]</div>
        </div>
        <div><br>
        </div>
        <div>
          <div>>>> import re</div>
          <div>>>> p = re.compile('foo (\w+(\w* *)*) is a
            (\w+(\w* *)*)')</div>
          <div>>>> p.match("foo bar is a foo bar is a big
            yellow boat or")</div>
          <div><_sre.SRE_Match object at 0x100293c00></div>
          <div>>>> p.match("foo bar is a foo bar is a big
            yellow boat or sub")</div>
          <div><_sre.SRE_Match object at 0x100293ab0></div>
        </div>
        <div><br>
        </div>
        <div>Can someone explain me, why I get on second string "foo bar
          is a foo bar is a big yellow boat or sub" nomatch? This is a
          bug?</div>
        <div><br clear="all">
          <div><br>
          </div>
          -- <br>
          <div dir="ltr">Петровский Александр / Alexander Petrovsky,<br>
            <br>
            Skype: askjuise<br>
            Jabber: <a href="mailto:juise@jabber.ru" target="_blank">juise@jabber.ru</a><br>
            <div>Phone: +7 914 8 820 815 (irkutsk)
              <div>
                <br>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
erlang-questions mailing list
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
  </div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Петровский Александр / Alexander Petrovsky,<br><br>Skype: askjuise<br>Jabber: <a href="mailto:juise@jabber.ru" target="_blank">juise@jabber.ru</a><br>
<div>Phone: +7 914 8 820 815 (irkutsk)<div><br></div></div></div>
</div>