regex: fix dot char problems on groups with * (#13333)

pull/13337/head
penguindark 2022-02-01 12:49:37 +01:00 committed by GitHub
parent 310969a057
commit 7c1b249da0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 0 deletions

View File

@ -2024,6 +2024,11 @@ pub fn (mut re RE) match_base(in_txt &byte, in_txt_len int) (int, int) {
re.prog[state.pc].group_rep++ // increase repetitions re.prog[state.pc].group_rep++ // increase repetitions
// println("GROUP $group_index END ${re.prog[state.pc].group_rep}") // println("GROUP $group_index END ${re.prog[state.pc].group_rep}")
if re.prog[state.pc].group_rep > in_txt_len - 1 {
m_state = .ist_quant_ng
continue
}
m_state = .ist_quant_pg m_state = .ist_quant_pg
continue continue
} }

View File

@ -160,6 +160,11 @@ match_test_suite = [
TestItem{"a", r"\S+",0,1}, TestItem{"a", r"\S+",0,1},
TestItem{"aaaa", r"\S+",0,4}, TestItem{"aaaa", r"\S+",0,4},
TestItem{"aaaa ", r"\S+",0,4}, TestItem{"aaaa ", r"\S+",0,4},
// multiple dot char
TestItem{"aba", r"a*(b*)*a",0,3},
TestItem{"/*x*/", r"/\**(.*)\**/",0,5},
TestItem{"/*x*/", r"/*(.*)*/",0,5},
] ]
) )