mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-04 20:17:42 +00:00
Remove findAll, rename findAllStr to findAll
This commit is contained in:
@@ -50,8 +50,7 @@ Arguments are the same as link:#proc-find[`find(...)`]
|
||||
|
||||
Variants:
|
||||
|
||||
- `proc findAll(...)` returns a `seq[RegexMatch]`
|
||||
- `proc findAllStr(...)` returns a `seq[string]`
|
||||
- `proc findAll(...)` returns a `seq[string]`
|
||||
|
||||
[[proc-split]]
|
||||
==== split(string, Regex, maxsplit = -1): seq[string]
|
||||
|
||||
@@ -372,10 +372,7 @@ proc find*(str: string, pattern: Regex, start = 0, endpos = -1): RegexMatch =
|
||||
## if `endpos == -1`, then `endpos = str.len`
|
||||
return str.matchImpl(pattern, start, endpos, 0)
|
||||
|
||||
proc findAll*(str: string, pattern: Regex, start = 0, endpos = -1): seq[RegexMatch] =
|
||||
accumulateResult(str.findIter(pattern, start, endpos))
|
||||
|
||||
proc findAllStr*(str: string, pattern: Regex, start = 0, endpos = -1): seq[string] =
|
||||
proc findAll*(str: string, pattern: Regex, start = 0, endpos = -1): seq[string] =
|
||||
result = @[]
|
||||
for match in str.findIter(pattern, start, endpos):
|
||||
result.add(match.match)
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
import unittest
|
||||
include nre
|
||||
import unittest, sequtils, nre
|
||||
|
||||
suite "find":
|
||||
test "find text":
|
||||
check("3213a".find(re"[a-z]").match == "a")
|
||||
check("1 2 3 4 5 6 7 8 ".findAll(re" ").map(
|
||||
check(toSeq(findIter("1 2 3 4 5 6 7 8 ", re" ")).map(
|
||||
proc (a: RegexMatch): string = a.match
|
||||
) == @[" ", " ", " ", " ", " ", " ", " ", " "])
|
||||
|
||||
test "find bounds":
|
||||
check("1 2 3 4 5 ".findAll(re" ").map(
|
||||
check(toSeq(findIter("1 2 3 4 5 ", re" ")).map(
|
||||
proc (a: RegexMatch): Slice[int] = a.matchBounds
|
||||
) == @[1..2, 3..4, 5..6, 7..8, 9..10])
|
||||
|
||||
test "overlapping find":
|
||||
check("222".findAllStr(re"22") == @["22"])
|
||||
check("2222".findAllStr(re"22") == @["22", "22"])
|
||||
check("222".findAll(re"22") == @["22"])
|
||||
check("2222".findAll(re"22") == @["22", "22"])
|
||||
|
||||
test "len 0 find":
|
||||
check("".findAllStr(re"\ ") == newSeq[string]())
|
||||
check("".findAllStr(re"") == @[""])
|
||||
check("".findAll(re"\ ") == newSeq[string]())
|
||||
check("".findAll(re"") == @[""])
|
||||
|
||||
Reference in New Issue
Block a user