123456789101112131415161718192021222324 |
- type
- Regex = distinct string
- const maxSubpatterns = 10
- proc re(x: string): Regex =
- result = Regex(x)
- proc match(s: string, pattern: Regex, captures: var openArray[string]): bool =
- true
- template optRe{re(x)}(x: string{lit}): Regex =
- var g {.global.} = re(x)
- g
- template `=~`(s: string, pattern: Regex): bool =
- when not declaredInScope(matches):
- var matches {.inject.}: array[maxSubPatterns, string]
- match(s, pattern, matches)
- for line in lines("input.txt"):
- if line =~ re"(\w+)=(\w+)":
- echo "key-value pair; key: ", matches[0], " value: ", matches[1]
|