我正在尝试编写一些代码来验证 erlang 中以冒号分隔的 k/v 对列表。我可以得到以下表达式来匹配一对。
re:run(Tag, "^([a-zA-Z0-9]{1,50}:[^:][ ]?[a-zA-Z0-9\\.\\-\\_\\+]{1,50})")
所以,如果我传递一个 key:value 的标签,它会按预期匹配。但是,如果我通过 key:value:123 之类的东西,我需要它不匹配。似乎正在发生的事情是如果字符串的任何部分匹配,则 re 返回 {match, Match} 。但是,如果整个字符串匹配,我需要它只返回匹配。有没有办法在erlang中做到这一点?我阅读了http://www.erlang.org/doc/man/re.html上的文档,并尝试了一些带有选项的东西,但还没有弄清楚。