首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用冒号分隔查找键值对的regexp

用冒号分隔查找键值对的regexp
EN

Stack Overflow用户
提问于 2010-12-15 12:01:50
回答 3查看 1.2K关注 0票数 1

我在为给定形式的字符串提供正则表达式时遇到了困难:

代码语言:javascript
复制
123123<key:value><key:value>,21313<key:value><key:value>

其中键:value对是可选的,但在相同的键中不能有两个冒号:value对。

我已经走了这么远:

代码语言:javascript
复制
^((\d+)(<(.+?):(.+?)>)*)(,\d+)(<(.+?):(.+?)>)*$

一些有效案文:

  • 123131
  • 123131, 123131, 1213313
  • 12313<key:value>
  • 232133<key:value><key:value>,232133<key:value><key:value>
EN

回答 3

Stack Overflow用户

发布于 2010-12-15 12:16:47

试试这个:

代码语言:javascript
复制
^((\d+)(<(.+?):(.+?)>){0,2})(,\s*((\d+)(<(.+?):(.+?)>){0,2}))*$

根据不想捕获的组,可以将( )更改为(?: )

Rubular连杆

票数 2
EN

Stack Overflow用户

发布于 2010-12-15 12:41:28

试着用这个^(\d+(<.+:.+>){1,2})(,\d+(<.+:.+>){1,2})*$希望它有帮助

票数 1
EN

Stack Overflow用户

发布于 2010-12-15 12:54:28

非常感谢你的回复,但他们似乎都没有做到我想要的。我认为,考虑到可维护性,可能更容易的是遵循OrangeDogs的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4449659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档