Unique append to match indices (ensure match indices aren't repeated
This commit is contained in:
@@ -33,7 +33,7 @@ func findAllMatchesHelper(start *State, str string, indices []matchIndex, offset
|
||||
if len(str) == 0 {
|
||||
// If the start is a Kleene star, then it should also match an empty string.
|
||||
if start.isKleene && start.isLast {
|
||||
indices = append(indices, matchIndex{offset, offset})
|
||||
indices, _ = unique_append(indices, matchIndex{offset, offset})
|
||||
}
|
||||
return indices
|
||||
}
|
||||
@@ -90,7 +90,7 @@ func findAllMatchesHelper(start *State, str string, indices []matchIndex, offset
|
||||
for _, state := range currentStates {
|
||||
if state.isLast {
|
||||
endIdx = i
|
||||
indices = append(indices, matchIndex{startIdx + offset, endIdx + offset})
|
||||
indices, _ = unique_append(indices, matchIndex{startIdx + offset, endIdx + offset})
|
||||
}
|
||||
}
|
||||
// Recursion - match with rest of string if we have nowhere to go. If we haven't moved in the string, increment the counter by 1 to ensure we don't keep trying the same string over and over
|
||||
@@ -126,7 +126,7 @@ func findAllMatchesHelper(start *State, str string, indices []matchIndex, offset
|
||||
// Only add the match if we the start index is in bounds
|
||||
if state.isLast && startIdx+offset < len(str)+offset {
|
||||
endIdx = i
|
||||
indices = append(indices, matchIndex{startIdx + offset, endIdx + offset})
|
||||
indices, _ = unique_append(indices, matchIndex{startIdx + offset, endIdx + offset})
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user