gpt4 book ai didi

regex - Azure Kusto - 解析正则表达式的使用位置 - 不区分大小写

转载 作者:行者123 更新时间:2023-12-05 04:22:40 28 4
gpt4 key购买 nike

我想获取规范名称的数据集并投影出用户名和域名。我有一个工作示例 - 但发现它仅在 CN 和 DC 大写时有效。

| parse MemberName with "CN=" TargetUser "," * ",DC=" TargetDomain
| extend TargetDomain = replace_string(TargetDomain, ",DC=", ".")

不过,一旦 CN 或 DC 未大写,预期的列就会为空。所以我试图用

来解决这个问题
| parse-where kind=regex flags=i MemberName with

但是无法让捕获组工作。 cn=(.*?),返回了整个字符串,但我没有取得太大进展。

数据集

<Data Name="MemberName">CN=test one,OU=-Level11,OU=Level12,OU=Level13,DC=Locale1,DC=boing,DC=com</Data>
<Data Name="MemberName">cn=test two,OU=Level21,OU=Leve22,DC=Locale2,DC=com</Data>
<Data Name="MemberName">cn=test three,OU=Level31,OU=Level32,dc=Locale3,dc=Locale31,dc=Locale32,dc=com</Data>

预期输出

<表类="s-表"><头>目标用户目标域<正文>测试一个Locale1.boing.com测试二Locale2.com测试三Locale3.Locale31.Locale32.com

最佳答案

您可以尝试使用 RE2 flags (特别是:i = case insensitive):

datatable(input:string)
[
'<Data Name="MemberName">CN=test one,OU=Level11,OU=Level12,OU=Level13,DC=Locale1,DC=boing,DC=com</Data>',
'<Data Name="MemberName">cn=test two,OU=Level21,OU=Leve22,DC=Locale2,DC=com</Data>',
'<Data Name="MemberName">cn=test three,OU=Level31,OU=Level32,dc=Locale3,dc=Locale31,dc=Locale32,dc=com</Data>',
]
| parse kind=regex flags=Ui input with * "CN=" TargetUser "(,OU=[^,]+)*,DC=" TargetDomain "</Data>"
| project TargetUser, TargetDomain = replace_regex(TargetDomain, "(?i),dc=", ".")
<表类="s-表"><头>目标用户目标域<正文>测试一个Locale1.boing.com测试二Locale2.com测试三Locale3.Locale31.Locale32.com

关于regex - Azure Kusto - 解析正则表达式的使用位置 - 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73902099/

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