|
|
@ -479,7 +479,35 @@ var reTests = []struct {
|
|
|
|
{`*?`, nil, `-`, nil},
|
|
|
|
{`*?`, nil, `-`, nil},
|
|
|
|
{`a*?`, nil, `-`, nil}, // non-greedy operators are not supported
|
|
|
|
{`a*?`, nil, `-`, nil}, // non-greedy operators are not supported
|
|
|
|
|
|
|
|
|
|
|
|
// Todo - add numeric range tests
|
|
|
|
// Numeric range tests - this is a feature that I added, and doesn't exist
|
|
|
|
|
|
|
|
// in any other mainstream regex engine
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `0`, []Group{{0, 1}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `7`, []Group{{0, 1}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `46`, []Group{{0, 2}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `90`, []Group{{0, 2}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `107`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `198`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `254`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `255`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`<0-255>`, nil, `256`, []Group{{0, 2}, {2, 3}}},
|
|
|
|
|
|
|
|
{`^<0-255>$`, nil, `256`, []Group{}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`^<0-299792458>$`, nil, `299000999`, []Group{{0, 9}}},
|
|
|
|
|
|
|
|
{`^<0-299792458>$`, nil, `299792531`, []Group{}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`^<3-0>$`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`^<0-0>$`, nil, `0`, []Group{{0, 1}}},
|
|
|
|
|
|
|
|
{`2<0-55>`, nil, `231`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`2<0-55>`, nil, `271`, []Group{{0, 2}}},
|
|
|
|
|
|
|
|
{`^2<0-55>$`, nil, `271`, []Group{}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`<389`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`<389>`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`<-389>`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`<389->`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`<389-400`, nil, `-`, nil},
|
|
|
|
|
|
|
|
{`<389-400>`, nil, `391`, []Group{{0, 3}}},
|
|
|
|
|
|
|
|
{`\b<1-10000>\b`, nil, `America declared independence in 1776.`, []Group{{33, 37}}},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var groupTests = []struct {
|
|
|
|
var groupTests = []struct {
|
|
|
@ -634,6 +662,8 @@ var groupTests = []struct {
|
|
|
|
{`^([ab]*)(?=(b)?)c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
{`^([ab]*)(?=(b)?)c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
{`^([ab]*)(?!(b))c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
{`^([ab]*)(?!(b))c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
{`^([ab]*)(?<!(a))c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
{`^([ab]*)(?<!(a))c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`(<389-400>)`, nil, `391`, []Match{[]Group{{0, 3}, {0, 3}}}},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestFindAllMatches(t *testing.T) {
|
|
|
|
func TestFindAllMatches(t *testing.T) {
|
|
|
|