Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 构建正则表达式字符串-提供的任何帮助_Regex - Fatal编程技术网

Regex 构建正则表达式字符串-提供的任何帮助

Regex 构建正则表达式字符串-提供的任何帮助,regex,Regex,我对REGEX非常陌生,我理解它的用途,但我还很难完全理解如何使用它。我正在尝试构建一个正则表达式字符串,以从以下内容中拉出A8OP2B(或第5组中转储的任何内容) {“RfReceived”:{“Sync”:9480,“Low”:310,“High”:950,“Data”:“A8OP2B”,“RfKey”:“None”} 上一行中的其他项目的字符长度将发生变化,因此我不能说是第51到56个字符。这将永远是第五组引号,虽然我想退出 我试着建立各种正则表达式字符串,但对我来说,它仍然是一门外语,我

我对REGEX非常陌生,我理解它的用途,但我还很难完全理解如何使用它。我正在尝试构建一个正则表达式字符串,以从以下内容中拉出A8OP2B(或第5组中转储的任何内容)

{“RfReceived”:{“Sync”:9480,“Low”:310,“High”:950,“Data”:“A8OP2B”,“RfKey”:“None”}

上一行中的其他项目的字符长度将发生变化,因此我不能说是第51到56个字符。这将永远是第五组引号,虽然我想退出

我试着建立各种正则表达式字符串,但对我来说,它仍然是一门外语,我还有很多阅读要做

有谁能给我提供一个以上的工作示例,这样我就可以进行逆向工程并更好地理解


谢谢演示1:将JSON引用到var,然后使用点或括号表示法

演示2:不建议使用正则表达式,但这里有一个JavaScript:

/\b(\w{6})(?=","RfKey":)/g
首场比赛
  • 非消费匹配::“A

    元边框:
    \b
    :非单词=,任何字符=,以及单词=A

  • 消费匹配:A8OP2B

    开始捕获:
    ,任意单词=
    \w
    ,6次=
    {6}
    结束捕获:

  • 非消费匹配:,“RfKey”:

    向前看:
    (?=
    用于:,“RfKey:


  • 演示1
    var obj={“RfReceived”:{“Sync”:9480,“Low”:310,“High”:950,“Data”:“A8OP2B”,“RfKey”:“None”};
    var dataDot=obj.RfReceived.Data;
    var-dataBracket=obj['RfReceived']['Data'];
    console.log(数据点);
    
    log(dataBracket)
    这只是JSON。为什么您需要使用regex从JSON检索信息,而不是像原来那样使用JSON?
    regex
    不是解析复杂格式的最合适工具。更重要的是,你发布的数据是。现在大多数编程语言要么直接支持JSON,要么有一个或多个函数库来正确处理JSON。在第三方软件中,我只看到上面的一行,界面允许我使用REGEX。我最终会出现大约40种不同类型的行,每种行都有自己的6个字符串,因此我需要过滤掉其余的位,这样第三方软件可以将6位代码转换为第三方软件中的操作/命令。如果有道理的话?进一步解释。。。。。如果愿意的话,我可以得到一个控制台输出,它不能运行任何类型的脚本语言。我所能告诉它做的就是,对于控制台中出现的每一行,通过REGEX去掉某些文本(REGEX是控制台允许我做的所有事情),并将其呈现给主程序。它是发送此MQTT行的硬件设备,因此我无法更改它发送的内容。MQTT代理只是将其中继到程序控制台上,控制台可以接受任何文本输入,但无法将文本行转换为我想要的区域,或者主程序会接受的区域,但我的软件不允许我这样做。如果愿意的话,我实际上得到了一个控制台输出,它不能运行那种脚本语言。我能告诉它做的就是,对于控制台中出现的每一行,通过REGEX去掉某些文本,并将其呈现给主程序。它是发送此MQTT行的硬件设备,因此我无法更改它发送的内容。MQTT代理只是将其中继到程序控制台上,控制台可以接受任何文本输入,但无法将文本行转换为我想要的区域或主程序将接受的区域。我设法找到了一个适合我的解决方案。不过,我会将您标记为JSON风格的解决方案的正确版本(尽管我确实通过其局限性从控制台中获得了所需内容)。@WS1234请参见演示2tankyou!!太好了:)