【问题标题】:Erlang regular expression must match entire stringErlang 正则表达式必须匹配整个字符串
【发布时间】:2013-08-21 03:22:29
【问题描述】:

我正在尝试编写一些代码来验证 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 阅读了文档并尝试了一些选项,但还没有弄清楚。

【问题讨论】:

  • 您是否尝试在您的正则表达式末尾添加$

标签: regex erlang


【解决方案1】:

只需在末尾添加$ 即可匹配整行:

^([a-zA-Z0-9]{1,50}:[^:][ ]?[a-zA-Z0-9\.\-\_\+]{1,50})$
                                                      ^ here

这是正则表达式的一个特性,而不是 Erlang 的特性。

【讨论】:

  • 啊!我什至知道!谢谢! (以及@Michelle)
猜你喜欢
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2020-09-19
  • 2022-01-15
相关资源
最近更新 更多