This commit is contained in:
parent
fe7a2d60f9
commit
17d08ff71c
3 changed files with 175 additions and 196 deletions
|
|
@ -58,6 +58,12 @@ runnableExamples:
|
|||
let matchBounds = firstVowel.get().captureBounds[-1]
|
||||
doAssert matchBounds.a == 1
|
||||
|
||||
## as with module `re`, unless specified otherwise, `start` parameter in each
|
||||
## proc indicates where the scan starts, but outputs are relative to the start
|
||||
## of the input string, not to `start`:
|
||||
doAssert find("uxabc", re"(?<=x|y)ab", start = 1).get.captures[-1] == "ab"
|
||||
doAssert find("uxabc", re"ab", start = 3).isNone
|
||||
|
||||
from pcre import nil
|
||||
import nre/private/util
|
||||
import tables
|
||||
|
|
@ -222,15 +228,15 @@ type
|
|||
## code.
|
||||
|
||||
runnableExamples:
|
||||
# This MUST be kept in sync with the examples in RegexMatch
|
||||
doAssert "abc".match(re"(\w)").get.captures[0] == "a"
|
||||
doAssert "abc".match(re"(?<letter>\w)").get.captures["letter"] == "a"
|
||||
doAssert "abc".match(re"(\w)\w").get.captures[-1] == "ab"
|
||||
# This MUST be kept in sync with the examples in RegexMatch
|
||||
doAssert "abc".match(re"(\w)").get.captures[0] == "a"
|
||||
doAssert "abc".match(re"(?<letter>\w)").get.captures["letter"] == "a"
|
||||
doAssert "abc".match(re"(\w)\w").get.captures[-1] == "ab"
|
||||
|
||||
doAssert "abc".match(re"(\w)").get.captureBounds[0] == 0 .. 0
|
||||
doAssert 0 in "abc".match(re"(\w)").get.captureBounds == true
|
||||
doAssert "abc".match(re"").get.captureBounds[-1] == 0 .. -1
|
||||
doAssert "abc".match(re"abc").get.captureBounds[-1] == 0 .. 2
|
||||
doAssert "abc".match(re"(\w)").get.captureBounds[0] == 0 .. 0
|
||||
doAssert 0 in "abc".match(re"(\w)").get.captureBounds == true
|
||||
doAssert "abc".match(re"").get.captureBounds[-1] == 0 .. -1
|
||||
doAssert "abc".match(re"abc").get.captureBounds[-1] == 0 .. 2
|
||||
|
||||
|
||||
proc destroyRegex(pattern: Regex) =
|
||||
|
|
@ -614,9 +620,9 @@ proc contains*(str: string, pattern: Regex, start = 0, endpos = int.high): bool
|
|||
## This function is equivalent to ``isSome(str.find(pattern, start, endpos))``.
|
||||
##
|
||||
runnableExamples:
|
||||
doAssert "abc".contains(re"bc") == true
|
||||
doAssert "abc".contains(re"cd") == false
|
||||
doAssert "abc".contains(re"a", start = 1) == false
|
||||
doAssert "abc".contains(re"bc")
|
||||
doAssert not "abc".contains(re"cd")
|
||||
doAssert not "abc".contains(re"a", start = 1)
|
||||
|
||||
return isSome(str.find(pattern, start, endpos))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue