mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
24 lines
578 B
Nim
24 lines
578 B
Nim
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 definedInScope(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]
|