regex - 带有前缀和约束的正则表达式
问题描述
我正在尝试创建一个执行以下操作的正则表达式。
所以我有一个匹配值的键,但是键本身有一些限制。一个键可以有一个最多 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}$)
解决方案
您可以将正则表达式设置为(^[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并尝试不同的组合。
推荐阅读
- javascript - 当某些键是数字时,按对象键排序数据不起作用
- ios - 如果使用“popViewController”,“deselectRow”不会动画
- python - Pandas groupby 不丢弃数据
- ios - 如何以编程方式使用容器视图
- swagger - 无法使用自定义基本控制器创建 swagger.json
- python - 减少操作后如何让numpy广播操作
- python - python spacy 在窗口中寻找两个(或更多)单词
- javascript - 将自定义 JS 与 odoo 集成
- html - 使用 CSS 动画更改部分文本
- java - 使用扩展泛型自动装配 Spring-Bean 的最佳实践