当前位置: 首页 > 知识库问答 >
问题:

json架构不支持此正则表达式的哪个部分,是否可以重写以支持它?

田念
2023-03-14

显然,json 架构不喜欢这个正则表达式:^(?=.{1,63}$)([-a-z0-9]*[a-z0-9])?$

https://regex101.com/r/qsyUoQ/1

我收到一个错误:模式必须是有效的正则表达式。此错误意味着我使用的正则表达式模式根据json模式无效。

我的正则表达式似乎对大多数其他解析器都有效。json模式支持正面和负面的前瞻性和捕获组:https://json-schema.org/understanding-json-schema/reference/regular_expressions.html

对于我的模式,我需要做一些特定于json模式的转义吗?

我不知道它为什么不喜欢我的正则表达式。

我想要的正则表达式将执行以下操作:

  • 允许小写字符、数字和“-”
  • 可以以“-”开头,但不能以“-li>结尾
  • 字符串的最大长度不能超过63个字符

共有1个答案

岳昊空
2023-03-14

您可以简化模式以使用字符类和限定符,而无需使用先行和捕获组。

您可以更改限定符,匹配0-62个字符,允许-,如果一个字符没有--,那么它也意味着它在末尾。

^[-a-z0-9]{0,62}[a-z0-9]$

正则表达式演示

 类似资料:
  • 上面的reg exp如何支持小写字母。

  • 我尝试实现一个简单的属性路径标记器,以便以后可以快速计算结果。 以下是我的初步实现: 它可以先接受这样的输入:,并生成以下快速分辨率阵列: 我遇到的问题是添加对嵌套引号的支持-和,对于这样的输入:。 更准确地说,我不知道如何将这里的解决方案之一注入到我的正则表达式中。这些解决方案本身工作得很好,只是不是我自己的正则表达式的一部分,所以把两个表达式合并成一个是我一直坚持的问题。

  • 问题内容: 我知道Flask具有int,float和path转换器,但是我们正在开发的应用程序的URL中具有更复杂的模式。 有没有办法像Django一样使用正则表达式? 问题答案: 即使Armin用可接受的答案击败了我,我仍然认为我会展示一个简短的示例,说明如何在Flask中实现正则表达式匹配器,以防万一有人想要如何完成此工作的示例。 该URL应返回200:http:// localhost:50

  • 我的Android应用程序已经有了一个运行正常的Exoplayer实现,我需要知道Exoplayer是否支持在HDCP中播放短跑视频(以及它是如何工作的)。演示应用程序有一些具有“HDCP功能”的示例,但我在代码库中找不到任何与它如何处理这一问题有关的内容(DASH manifest文件本身是否指定了HDCP功能?)。

  • 问题内容: SQLite是否支持公用表表达式? 我想运行这样的查询: 问题答案: 从Sqlite版本3.8.3开始,SQLite支持公用表表达式。 变更记录 指示

  • 我有一个使用火花的Java类。我需要从JavaRDD过滤掉标头。这就是我想做的。 但是,这段代码