Search/replace 在库斯托

Search/replace in Kusto

用例:从 Azure Application Insights 结果中删除字符串

这是一个简单的问题,但在线示例很少,作为新用户,并且在 Regex 方面的经验(但学习)有限,我正在努力。

如何删除以下 table 中 | Articles 的所有实例,这是我从 Azure Application Insights 导出的示例?

这没有用:

| extend name=replace(@' | Articles', @'', name)

我对微软文档中的一个示例进行了多次尝试,但没有成功(我知道这种解释是不正确的):

| extend str=strcat(' | Articles', tostring(name))
| extend replaced=replace(@' | Articles', @'', str)

感谢您的任何见解。

您最初的尝试不起作用的原因是 replace() 的第一个参数是一个正则表达式,如果您在 is 中有管道 (|),您将需要要正确转义它,请使用反斜杠 (\).

例如:

datatable(s:string)
[
    "Article 1 | Articles",
    "Article 2",
    "Article 3 | Articles" 
]
| extend replaced=replace(@' \| Articles', @'', s)

理想情况下,如果可能,您将选择不需要使用正则表达式的解决方案。

例如:

datatable(s:string)
[
    "Article 1 | Articles",
    "Article 2",
    "Article 3 | Articles" 
]
| extend i = indexof(s, " | Articles")
| project s = case(i == -1, s, substring(s, 0, i))