Bug with end of string characters in regex?

/\A\n\Z/m.match("\n\n") => #

shouldn’t this expression return nil?

These both return nil.
/\A\n\Z/m.match(“a\n”)
/\A\n\Z/m.match("\na")

My understanding is that \A and \Z always match at the beginning/end of
the string irrespective of newlines.

-Justin

Justin C. wrote:

/\A\n\Z/m.match(“\n\n”) => #

shouldn’t this expression return nil?

These both return nil.
/\A\n\Z/m.match(“a\n”)
/\A\n\Z/m.match(“\na”)

My understanding is that \A and \Z always match at the beginning/end of
the string irrespective of newlines.

-Justin

Check out rubular.com

You are asking for:

\A # beginning of string
\n # newline
\Z # end of string

And by the way … “\n” and /\n/ may not be the same, depending on what
the regexp wants to do with the backslash! you could try escaping it.
What do you want to match?
maybe:
/A # beginning of string
.* # any characters
\n # newline
.* # any characters
/Z # end of string

On Wed, Jan 13, 2010 at 6:33 PM, Justin C. [email protected]
wrote:

Looks like I’ve solved my own problem the \Z in ruby doesn’t have the
same semantics as it does in other languages. There is a \z which is
what I wanted so as expected:

/\A\n\z/m.match(“\n\n”) => nil

\z end of a string
\Z end of a string, or before newline at the end

So, \Z allows an extra \n at the end of the string.

Jesus.

Looks like I’ve solved my own problem the \Z in ruby doesn’t have the
same semantics as it does in other languages. There is a \z which is
what I wanted so as expected:

/\A\n\z/m.match("\n\n") => nil

-Justin

2010/1/13 Jesús Gabriel y Galán [email protected]:

So, \Z allows an extra \n at the end of the string.
For the reference here’s the doc:
サービス終了のお知らせ

Cheers

robert

On Thu, Jan 14, 2010 at 12:50 PM, Robert K.
[email protected] wrote:

So, \Z allows an extra \n at the end of the string.

For the reference here’s the doc:
サービス終了のお知らせ

Good to know thanks. I copied the quote from:

Thanks.

Jesus.