在erlang中获取命名子模式的值

时间:2013-01-29 11:29:27

标签: regex erlang

您好我有以下正则表达式和值

2> re:run("first second", "^(?<foo>\\w+) (?<bar>\\w+)$", [{capture, [foo, bar], list}]).
{match,["first","second"]}
3> 

这里我将foo与“first”匹配,将bar与“second”匹配。问题出在我的app(url mapper)中,我不知道会有多少个命名的子模式以及它们的名称。 所以我希望它们匹配像

这样的东西
2> re:magic_run("first second", "^(?<foo>\\w+) (?<bar>\\w+)$" ).
{match,[{foo, "first"},{bar, "second"}]}

我关心的不是输出格式。我希望能够将值与子模式名称匹配。有没有办法将值与子模式配对?

1 个答案:

答案 0 :(得分:0)

如果您的字符串不规则,请不要使用正则表达式。特别是在你的情况下,我强烈建议使用String.split() - 某种方法(从未编程过Erlang,但我认为有人可能已经实现了这一点)。