nim re,正则表达式模块未填充匹配组

ent*_*ast 2 regex nim-lang

我想使用 nim 库的正则表达式模块:

import re

var s="""<webSettings>
<add key="MyLaborPassword" value="shadowed" />
<add key="MyLaborUserID" value="shadowed" />
<add key="MyLaborUrl" value="shadowed" />
<add key="DebugSoapLoggingEnabled" value="false" />
  </webSettings>
 """


var matches : seq[string] = @[]

echo s.find(re"""MyLaborP(ass)word""",matches)
echo matches
Run Code Online (Sandbox Code Playgroud)

给我

25
@[]
Run Code Online (Sandbox Code Playgroud)

但我除了:

25
@["ass"]
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

def*_*ef- 5

模块已被弃用,并已在我的经验有点马车。您可以使用新的 nre 模块:

import nre, options

var s="""<webSettings>
<add key="MyLaborPassword" value="shadowed" />
<add key="MyLaborUserID" value="shadowed" />
<add key="MyLaborUrl" value="shadowed" />
<add key="DebugSoapLoggingEnabled" value="false" />
  </webSettings>
 """


echo s.find(re"""MyLaborP(ass)word""").get.captures[0]
Run Code Online (Sandbox Code Playgroud)

哪个打印ass

  • 您可能使用的是旧版本的 Nim。当前的 Nim 0.12.0 带有选项模块。Nimcache 清除是一个我希望现在可以修复的错误。 (2认同)