|
|
@ -430,6 +430,22 @@ var reTests = []struct {
|
|
|
|
{`\0009`, []ReFlag{RE_CASE_INSENSITIVE}, "\x009", []Group{{0, 2}}},
|
|
|
|
{`\0009`, []ReFlag{RE_CASE_INSENSITIVE}, "\x009", []Group{{0, 2}}},
|
|
|
|
{`\141`, []ReFlag{RE_CASE_INSENSITIVE}, "A", []Group{{0, 1}}},
|
|
|
|
{`\141`, []ReFlag{RE_CASE_INSENSITIVE}, "A", []Group{{0, 1}}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`a[-]?c`, []ReFlag{RE_CASE_INSENSITIVE}, `AC`, []Group{{0, 2}}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`a(?!b).`, nil, `abad`, []Group{{2, 4}}},
|
|
|
|
|
|
|
|
{`a(?=d).`, nil, `abad`, []Group{{2, 4}}},
|
|
|
|
|
|
|
|
{`a(?=c|d).`, nil, `abad`, []Group{{2, 4}}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`^abc`, nil, "jkl\nabc\nxyz", []Group{}},
|
|
|
|
|
|
|
|
{`^abc`, []ReFlag{RE_MULTILINE}, "jkl\nabc\nxyz", []Group{{4, 7}}},
|
|
|
|
|
|
|
|
{`abc$`, nil, "jkl\nabc\nxyz", []Group{}},
|
|
|
|
|
|
|
|
{`abc$`, []ReFlag{RE_MULTILINE}, "jkl\nabc\nxyz", []Group{{4, 7}}},
|
|
|
|
|
|
|
|
{`abc$`, []ReFlag{RE_MULTILINE}, "jkl\n123abc\nxyz", []Group{{7, 10}}},
|
|
|
|
|
|
|
|
{`^`, nil, "jkl\n123abc\nxyz", []Group{{0, 0}}},
|
|
|
|
|
|
|
|
{`^`, []ReFlag{RE_MULTILINE}, "jkl\n123abc\nxyz", []Group{{0, 0}, {4, 4}, {11, 11}}},
|
|
|
|
|
|
|
|
{`$`, nil, "jkl\n123abc\nxyz", []Group{{14, 14}}},
|
|
|
|
|
|
|
|
{`$`, []ReFlag{RE_MULTILINE}, "jkl\n123abc\nxyz", []Group{{3, 3}, {10, 10}, {14, 14}}},
|
|
|
|
|
|
|
|
|
|
|
|
// Todo - add numeric range tests
|
|
|
|
// Todo - add numeric range tests
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -563,6 +579,15 @@ var groupTests = []struct {
|
|
|
|
{`([abc])*d`, []ReFlag{RE_CASE_INSENSITIVE}, `ABBBCD`, []Match{[]Group{{0, 6}, {4, 5}}}},
|
|
|
|
{`([abc])*d`, []ReFlag{RE_CASE_INSENSITIVE}, `ABBBCD`, []Match{[]Group{{0, 6}, {4, 5}}}},
|
|
|
|
{`([abc])*bcd`, []ReFlag{RE_CASE_INSENSITIVE}, `ABCD`, []Match{[]Group{{0, 4}, {0, 1}}}},
|
|
|
|
{`([abc])*bcd`, []ReFlag{RE_CASE_INSENSITIVE}, `ABCD`, []Match{[]Group{{0, 4}, {0, 1}}}},
|
|
|
|
{`^(ab|cd)e`, []ReFlag{RE_CASE_INSENSITIVE}, `ABCDE`, []Match{}},
|
|
|
|
{`^(ab|cd)e`, []ReFlag{RE_CASE_INSENSITIVE}, `ABCDE`, []Match{}},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{`(?:(?:(?:(?:(?:(?:a))))))`, nil, `a`, []Match{[]Group{{0, 1}}}},
|
|
|
|
|
|
|
|
{`a(?:b|c|d)(.)`, nil, `ace`, []Match{[]Group{{0, 3}, {2, 3}}}},
|
|
|
|
|
|
|
|
{`a(?:b|c|d)*(.)`, nil, `ace`, []Match{[]Group{{0, 3}, {2, 3}}}},
|
|
|
|
|
|
|
|
{`a(?:b|c|d)+(.)`, nil, `ace`, []Match{[]Group{{0, 3}, {2, 3}}}},
|
|
|
|
|
|
|
|
{`a(?:b|(c|e){1,2}?|d)+?(.)`, nil, `ace`, []Match{[]Group{{0, 3}, {1, 2}, {2, 3}}}},
|
|
|
|
|
|
|
|
{`(?<!-):(.*)(?<!-):`, nil, `a:bc-:de:f`, []Match{[]Group{{1, 9}, {2, 8}}}},
|
|
|
|
|
|
|
|
{`(?<!\\):(.*)(?<!\\):`, nil, `a:bc\:de:f`, []Match{[]Group{{1, 9}, {2, 8}}}},
|
|
|
|
|
|
|
|
{`(?<!\?)'(.*)(?<!\?)'`, nil, `a'bc?'de'f`, []Match{[]Group{{1, 9}, {2, 8}}}},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestFindAllMatches(t *testing.T) {
|
|
|
|
func TestFindAllMatches(t *testing.T) {
|
|
|
|