mirror of
https://github.com/ruby/ruby.git
synced 2025-08-24 21:44:30 +02:00
* regparse.c (fetch_name_with_level): allow non word characters
at the first character. [Feature #11949] * regparse.c (fetch_name): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
826f2ee306
commit
782fd488d7
3 changed files with 28 additions and 7 deletions
|
@ -142,6 +142,8 @@ class TestRegexp < Test::Unit::TestCase
|
|||
assert_equal("a[b]c", "abc".sub(/(?<x>[bc])/, "[\\k<x>]"))
|
||||
|
||||
assert_equal("o", "foo"[/(?<bar>o)/, "bar"])
|
||||
assert_equal("o", "foo"[/(?<@bar>o)/, "@bar"])
|
||||
assert_equal("o", "foo"[/(?<@bar>.)\g<@bar>\k<@bar>/, "@bar"])
|
||||
|
||||
s = "foo"
|
||||
s[/(?<bar>o)/, "bar"] = "baz"
|
||||
|
@ -175,6 +177,7 @@ class TestRegexp < Test::Unit::TestCase
|
|||
|
||||
def test_assign_named_capture
|
||||
assert_equal("a", eval('/(?<foo>.)/ =~ "a"; foo'))
|
||||
assert_equal(nil, eval('/(?<@foo>.)/ =~ "a"; defined?(@foo)'))
|
||||
assert_equal("a", eval('foo = 1; /(?<foo>.)/ =~ "a"; foo'))
|
||||
assert_equal("a", eval('1.times {|foo| /(?<foo>.)/ =~ "a"; break foo }'))
|
||||
assert_nothing_raised { eval('/(?<Foo>.)/ =~ "a"') }
|
||||
|
@ -939,6 +942,10 @@ class TestRegexp < Test::Unit::TestCase
|
|||
h = {a => 42}
|
||||
assert_equal(42, h[b], '[ruby-core:24748]')
|
||||
assert_match(/#<TestRegexp::MatchData_\u{3042}:/, MatchData_A.allocate.inspect)
|
||||
|
||||
h = /^(?<@time>\d+): (?<body>.*)/.match("123456: hoge fuga")
|
||||
assert_equal("123456", h["@time"])
|
||||
assert_equal("hoge fuga", h["body"])
|
||||
end
|
||||
|
||||
def test_regexp_poped
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue