File: match.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (18 lines) | stat: -rw-r--r-- 754 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
include nre, unittest, optional_nonstrict

block: # match
  block: # upper bound must be inclusive
    check("abc".match(re"abc", endpos = -1) == none(RegexMatch))
    check("abc".match(re"abc", endpos = 1) == none(RegexMatch))
    check("abc".match(re"abc", endpos = 2) != none(RegexMatch))

  block: # match examples
    check("abc".match(re"(\w)").captures[0] == "a")
    check("abc".match(re"(?<letter>\w)").captures["letter"] == "a")
    check("abc".match(re"(\w)\w").captures[-1] == "ab")
    check("abc".match(re"(\w)").captureBounds[0] == 0 .. 0)
    check("abc".match(re"").captureBounds[-1] == 0 .. -1)
    check("abc".match(re"abc").captureBounds[-1] == 0 .. 2)

  block: # match test cases
    check("123".match(re"").matchBounds == 0 .. -1)