gpt4 book ai didi

regex - 如何使用这两个键值对使用 CEF 数据扩展此 RegEx?

转载 作者:行者123 更新时间:2023-12-04 08:12:19 26 4
gpt4 key购买 nike

我目前有这个正则表达式:

?P<key>\w+)=(?P<value>[a-zA-Z0-9-_:/@. ]+
输入第 1 行: event=1921;json={"source":"A","location":B":"folder":"c:\\windows\\system32"},"id":2,"address":null,"name":"gone";输入第 2 行: dev=b;json={"dest":"123","home":AZ":"loc":"sys"},"ab":9,"home":null,"someKey":"someValue";它正确地提取了“event=1921;”但确实提取了其他两种类型。
  • 我如何提取 "json={...}"使用 key (JSON)和值?
  • 我如何提取 "name":"gone"使用键(名称)和值(消失)?
    解决方案需要是动态的,因为关键字段在其他行中的命名方式不同。
  • 最佳答案

    您应该可以使用 parse运营商:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/parseoperator
    例如:

    print input = 'event=1921;json={"source":"A","location":B":"folder":"c:\\windows\\system32"},"id":2,"address":null,"name":"gone";'
    | parse input with * "json=" json:dynamic ',"id"' * '"name":"' name '"' *
    如果您的负载/属性名称完全是动态的,则:
    一种。我建议您评估以标准格式构建源数据的选项(目前,即使是“ json ”部分也不是有效的 JSON)
    湾您可以尝试以下操作 - 功能强大,但效率很低(不推荐用于大规模数据处理)
    datatable(input:string)
    [
    'event=1921;json={"source":"A","location":B":"folder":"c:\\windows\\system32"},"id":2,"address":null,"name":"gone";',
    'dev=b;json={"dest":"123","home":AZ":"loc":"sys"},"ab":9,"home":null,"someKey":"someValue";'
    ]
    | parse input with prefix ";json={" json:dynamic '},' suffix
    | mv-apply x = extract_all(@'(\w+)=(\w+)', prefix) on (
    project p = pack(tostring(x[0]), x[1])
    | summarize b1 = make_bag(p)
    )
    | mv-apply y = extract_all(@'"(\w+)":"?(\w+)"?', suffix) on (
    project p = pack(tostring(y[0]), y[1])
    | summarize b2 = make_bag(p)
    )
    | project json = strcat("{", json, "}"), b = bag_merge(b1, b2)
    | evaluate bag_unpack(b)

    关于regex - 如何使用这两个键值对使用 CEF 数据扩展此 RegEx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65892703/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com