[#3113] Problem in RSS library, or problem in my blog :) — Dave Thomas <dave@...>
I've been trying to use the new RSS library to parse a number of
7 messages
2004/07/01
[#3136] Wrong rdoc formatting in {array,pack}.c — Johan Holmberg <holmberg@...>
7 messages
2004/07/05
[#3162] Re: [doc-patch] Wrong rdoc formatting in {array,pack}.c
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/07/09
Hello.
[#3170] Another rdoc formatting error in array.c
— Johan Holmberg <holmberg@...>
2004/07/10
[#3172] Re: [doc-patch] Another rdoc formatting error in array.c
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/07/12
Hello.
[#3141] rexml/validation/validationexception is missing. — nobu.nokada@...
Hi,
5 messages
2004/07/06
[#3154] Nonblocking socket connect - Win32 - 181 — "Jean-Francois Nadeau" <jean-francois.nadeau@...>
Hi,
4 messages
2004/07/08
[#3167] Inconsistent "call-seq" usage etc. — Johan Holmberg <holmberg@...>
7 messages
2004/07/09
[#3168] Re: [doc] Inconsistent "call-seq" usage etc.
— Dave Thomas <dave@...>
2004/07/09
[#3171] binding a URL to a label in RDoc — Ian Macdonald <ian@...>
Hello,
6 messages
2004/07/12
[#3199] Trying to understand \G — Dave Thomas <dave@...>
I'm being silly again, but I can't get \G to work with String.index. If
12 messages
2004/07/16
[#3213] Typo and grammar/style fixes for ext/win32ole/win32ole.c — Jos Backus <jos@...>
The attached patch attempts to create a more consistent style for error
4 messages
2004/07/19
[#3216] Re: Incident Analysis of the intrusion on helium.ruby-lang.org May 2004 — "Sean E. Russell" <ser@...>
Hi,
6 messages
2004/07/21
[#3228] Core support for Gems, and namespace — "Luke A. Kanies" <luke@...>
Hi all,
21 messages
2004/07/27
[#3229] Re: Core support for Gems, and namespace
— Dave Thomas <dave@...>
2004/07/27
[#3232] Re: Core support for Gems, and namespace
— "Luke A. Kanies" <luke@...>
2004/07/27
On Tue, 27 Jul 2004, Dave Thomas wrote:
[#3233] Re: Core support for Gems, and namespace
— Gavin Sinclair <gsinclair@...>
2004/07/27
On Wednesday, July 28, 2004, 12:48:07 AM, Luke wrote:
[#3235] Re: Core support for Gems, and namespace
— "Luke A. Kanies" <luke@...>
2004/07/27
On Wed, 28 Jul 2004, Gavin Sinclair wrote:
[#3230] Re: Core support for Gems, and namespace
— Austin Ziegler <halostatue@...>
2004/07/27
On Tue, 27 Jul 2004 11:39:08 +0900, Luke A. Kanies <luke@madstop.com> wrote:
[#3234] Re: Core support for Gems, and namespace
— "Luke A. Kanies" <luke@...>
2004/07/27
On Tue, 27 Jul 2004, Austin Ziegler wrote:
[#3238] Re: Core support for Gems, and namespace
— Austin Ziegler <halostatue@...>
2004/07/27
On Wed, 28 Jul 2004 00:14:29 +0900, Luke A. Kanies <luke@madstop.com> wrote:
[#3243] Re: Core support for Gems, and namespace
— Gavin Sinclair <gsinclair@...>
2004/07/28
On Wednesday, July 28, 2004, 3:23:46 AM, Austin wrote:
[#3248] Re: Core support for Gems, and namespace
— Austin Ziegler <halostatue@...>
2004/07/28
On Wed, 28 Jul 2004 11:29:53 +0900, Gavin Sinclair
[#3249] Re: Core support for Gems, and namespace
— Mauricio Fern疣dez <batsman.geo@...>
2004/07/28
On Wed, Jul 28, 2004 at 11:29:53AM +0900, Gavin Sinclair wrote:
Re: Trying to understand \G
From:
"daz" <dooby@...10.karoo.co.uk>
Date:
2004-07-27 15:34:44 UTC
List:
ruby-core #3236
From: Matz
>
> \G forces <rest> to match immediately after the last match (or
> beginning of a string).
>
> p "a01b20c30 d40".scan(/[a-z]\d+/)
> p "a01b20c30 d40".scan(/\G[a-z]\d+/)
>
> matz.
>
Ah, "last" meaning "most recent" (contrasted with "final").
At the beginning of a string, \G == \A .
\A can only anchor the beginning of the string once.
\G is the anchor point for the rest (unmatched portion) of the string,
so it can be an anchor point several times in a "repeater" method.
Adding \A to the examples above:
p 'a01b20c30 d40'.scan(/[a-z]\d+/) #-> ["a01", "b20", "c30", "d40"]
p 'a01b20c30 d40'.scan(/\A[a-z]\d+/) #-> ["a01"]
p 'a01b20c30 d40'.scan(/\G[a-z]\d+/) #-> ["a01", "b20", "c30"]
So, \G will be useful for finding sequences which must be contiguous.
Below, both \A and \G versions fail to match and will never match later.
a3_RE = /[a-z]{3}/
p ' abcdef'.scan(/#{a3_RE}/) #=> ["abc ", "def "]
p ' abcdef'.scan(/\A#{a3_RE}/) #=> []
p ' abcdef'.scan(/\G#{a3_RE}/) #=> []
#----^
Also, just as /.\A/ could never match, nor could /.\G/
Both only make sense at the start of a pattern.
Below, Nobu's example [core:3203] works for \G whereas (substituting
\A for \G in PATT) it confirms that the start of string is at offset
zero and none other.
words = 'dog horse cat rabbit pig sheep'
PATT = /\G\w+/
last = 0
while index = words.index(PATT, last)
puts index
puts $&
last = Regexp.last_match.end(0) + 1
end
(Thinking aloud)
:daz