我在为给定形式的字符串提供正则表达式时遇到了困难:
123123<key:value><key:value>,21313<key:value><key:value>其中键:value对是可选的,但在相同的键中不能有两个冒号:value对。
我已经走了这么远:
^((\d+)(<(.+?):(.+?)>)*)(,\d+)(<(.+?):(.+?)>)*$一些有效案文:
123131123131, 123131, 121331312313<key:value>232133<key:value><key:value>,232133<key:value><key:value>发布于 2010-12-15 12:16:47
试试这个:
^((\d+)(<(.+?):(.+?)>){0,2})(,\s*((\d+)(<(.+?):(.+?)>){0,2}))*$根据不想捕获的组,可以将( )更改为(?: )。
Rubular连杆
发布于 2010-12-15 12:41:28
试着用这个^(\d+(<.+:.+>){1,2})(,\d+(<.+:.+>){1,2})*$希望它有帮助
发布于 2010-12-15 12:54:28
非常感谢你的回复,但他们似乎都没有做到我想要的。我认为,考虑到可维护性,可能更容易的是遵循OrangeDogs的建议。
https://stackoverflow.com/questions/4449659
复制相似问题