首页 > 解决方案 > 带有前缀和约束的正则表达式

问题描述

我正在尝试创建一个执行以下操作的正则表达式。

所以我有一个匹配值的键,但是键本身有一些限制。一个键可以有一个最多 253 个字符的可选键前缀,而普通键最多可以有 63 个字符。键前缀用斜杠分隔。

键前缀也只能具有以下字符集:[a-z0-9A-Z\.] 而键部分使用以下字符集:[a-z0-9A-Z\_\.\-]

所以这种格式

(key-prefix)/(key) : (value)

我的问题是我不擅长正则表达式。我设法通过以下方法解决了关键部分

^[A-Za-z0-9][_0-9A-Za-z-]{0,62}$

我知道我必须做一些涉及分组的事情才能获得前缀。下面是这样的,但是当我尝试添加另一个组时它会停止匹配。

(^[A-Za-z0-9][_0-9A-Za-z-]{0,252}$\/)?(^[A-Za-z0-9][_0-9A-Za-z-]{0,62}$)

标签: regexvalidation

解决方案


您可以将正则表达式设置为(^[A-Za-z0-9][_0-9A-Za-z-]{0,252}\/[A-Za-z0-9][_0-9A-Za-z-]{0,62}$)请访问https://regex101.com/r/GBNe14/1并尝试不同的组合。


推荐阅读