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

JSON模式错误期望'STRING','NUMBER','NULL','TRUE','FALSE', '{', '[', 使用正则表达式得到'un定义'

夹谷岳
2023-03-14

我有以下json,但由于某种原因,我不断收到此行的错误:

"Test": "Hostname:\s+(?<Hostname>[^\n]*)\s+Site name:\s+(?<SiteName>[^\n]*"

我的JSON:

{
    "Rules": [{
        "Field": "Subject",
        "Test": "^(Azure Exception)",
        "Cases": [{
            "Field": "Content",
            "Test": "Hostname: az.....(?<Hostname>[^\n])",
            "Cases": [{
                "Field": "Content",
                "Test": "Hostname:\s+(?<Hostname>[^\n]*)\s+Site name:\s+(?<SiteName>[^\n]*)"
            }]
        }]
    }]
}

据我所知,这是一个有效的正则表达式。有人知道我做错了什么吗?

我正在使用https://jsonlint.com/来测试我的json

测试正则表达式:https://regex101.com/r/l4tn4W/3/.

干杯

共有1个答案

利稳
2023-03-14

你应该使用

"Test": "Hostname:\\s+(?<Hostname>.*)\\s+Site name:\\s+(?<SiteName>.*)"

[^\n]匹配除换行符之外的任何字符,换行符可以用< code >替换。自< code >以来的简洁模式。匹配除换行符以外的任何字符。

此外,反斜杠必须加倍才能形成正则表达式转义序列。

请注意,根据您得到的结果,您可能需要进一步简化模式:

"Test": "Hostname:[ \t]+(.*?)[ \t]+Site name:[ \t]+(.*)"

其中< code>\s替换为匹配空格或制表符的< code>[ \t],所有命名的捕获组替换为简单编号的捕获组和第一个< code >。*被替换为非贪婪的对等项< code >。*?,匹配除换行符以外的任何零个或多个字符,越少越好。

 类似资料:
  • 问题内容: 使用Python正则表达式如何获得/返回?所有Python回报是: 问题答案: 对象始终为true,如果不匹配,则返回。只是测试真实性。

  • 我得到了以下错误,我不知道如何修复它: Blockquote错误:第1660行出现解析错误:...,"描述:" "心理咨询师- ^期望'字符串','数字','空','真','假',' { ','[',得到了'未定义' 这是抛出此错误的文件部分: 我做错了什么?

  • 下面是我正在使用的正则表达式的最新版本,它抛出了错误“Invalid regular expression” XSD:正则表达式在位置4验证失败:当前选项设置不支持此表达式。 我在xsd文件中得到了这个异常,我正在message broker(IIB)中开发这个xsd。有谁能帮我解决这个问题吗?

  • 我正在尝试使用以下正则表达式模式

  • 我目前正在尝试创建一个日志解析器,它从一个输入文件(a.log)中获取以下格式的一系列ping报告:(194.12.224.34中的64字节:icmp_seq=1 ttl=47 time=66.7 ms)并构建一个输出文件(a.csv)。 经过多次尝试,我发现了下面的错误。我的同事给了我他的代码(如下),虽然写得不同,但本质上是一样的。他的代码给出了同样的错误,尽管他的代码在同一个任务中正常工作。

  • 问题内容: 我在包含一些文本的文本文件中有字符串,如下所示: 我希望在类名之前获取所有内容。 我已经尝试了以下方法,但是我不知道该如何摆脱 我得到以下信息: 而不是我想要的: 关于如何解决此问题的任何指示? 问题答案: 如果不使用捕获组,则可以使用超前(业务)。 应该捕获您想要的一切。这里是细分的: