Fix --with-nth performance; use simpler regular expression

Related #317
This commit is contained in:
Junegunn Choi
2015-08-10 23:47:03 +09:00
parent 766427de0c
commit d0f2c00f9f
5 changed files with 33 additions and 15 deletions

View File

@@ -145,7 +145,16 @@ func Tokenize(runes []rune, delimiter Delimiter) []Token {
tokens[i] = tokens[i] + *delimiter.str
}
} else if delimiter.regex != nil {
tokens = delimiter.regex.FindAllString(string(runes), -1)
str := string(runes)
for len(str) > 0 {
loc := delimiter.regex.FindStringIndex(str)
if loc == nil {
loc = []int{0, len(str)}
}
last := util.Max(loc[1], 1)
tokens = append(tokens, str[:last])
str = str[last:]
}
}
asRunes := make([][]rune, len(tokens))
for i, token := range tokens {