字串資料類型

string 資料類型代表零或多個 Unicode 字元的序列。

如需字串查詢運算符的資訊,請參閱 字串運算元

注意

  • 在內部,字串會以 UTF-8 編碼。 無效 (非 UTF8) 字元會在擷取時以 U+FFFD Unicode 取代字元加以取代。
  • Kusto 沒有相當於單一字元的資料類型。 單一字元會以長度 1 的字串表示。
  • string擷取數據類型時,如果記錄中的單一字串值超過使用UTF-8編碼) 測量的1MB (,則會截斷值並成功擷取。 如果記錄或整個記錄中的單一字串值超過允許的數據限制 64MB,擷取會失敗。

string 文字

您可以使用雙引號或單引號來編碼查詢文字中的字串常值。 使用雙引號時,您必須使用反斜杠 (\) 逸出巢狀雙引號字元。 使用單引號時,您必須逸出巢狀單引號字元,而且不需要逸出雙引號。

使用反斜杠字元逸出括住的引號字元、製表符 () \t 、換行符 (\n) ,以及反斜杠本身 (\\) 。

注意

除非使用多行字串常值,否則換行符 (\n) 和傳回字元 (\r) 必須以引號括住。

逐字字串常值

也支援逐字字串常值。 在此形式中,反斜杠字元 (\) 本身代表,而且不是逸出字元。 在字串常值前面加上 @ 字元做為逐字標識碼。 在逐字字串常值中,雙引號會以雙引號逸出,而單引號則會以單引號逸出。

如需範例,請參閱 逐字字串

注意

除非使用多行字串常值,否則換行符 (\n) 和傳回字元 (\r) 必須以引號括住。

多行字串常值

以 「triple-backtick chord」 表示多行字串常值, (''') 常值開頭和結尾。

如需範例,請參閱 多行字串常值

注意

  • 多行字串常值支援換行 () \n ,並傳回 (\r) 字元。
  • 多行字串常值不支援逸出字元。 類似於 逐字字串常值
  • 多行字串常值不支援 混淆

分隔字串常值的串連

在 Kusto 查詢中,當兩個以上的相鄰字串常值之間沒有分隔時,它們會自動結合以形成新的字串常值。 同樣地,如果字串常值只以空格符或批註分隔,它們也會合併成形成新的字串常值。

如需範例,請參閱 串連字串常值

混淆的字串常值

查詢會儲存在遙測和分析中。 若要保護密碼和秘密等敏感性資訊,您可以將字串標示為 模糊字串常值。 這些標示的字串會取代為查詢文字中的星號 (*) 。

模糊字串常值是藉由在標準或逐字字串常值前面加上 hH 字元來建立。

如需範例,請參閱 模糊字串常值

重要

將所有包含秘密資訊的字串常值標示為模糊字串常值。

提示

在某些情況下,字串常值只有一部分包含秘密資訊。 在這種情況下,請將常值分成非秘密部分和秘密部分。 然後,只將秘密部分標示為模糊化。

範例

具有引號的字串常值

下列範例示範如何在單引號和雙引號所包含的字串常值中使用引號。 如需詳細資訊,請參閱 字串常值

print
    s1 = 'string with "double quotes"',
    s2 = "string with 'single quotes'"

輸出

s1 s2
具有 「double quotes」 的字串 具有 『single quotes』 的字串

具有反斜杠逸出的字串常值

下列範例會使用反斜杠建立正則表示式模式,以逸出特殊字元。 如需詳細資訊,請參閱 字串常值

print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='

輸出

模式
\n.* (>|'|=|") [a-zA-Z0-9/+]{86}==

具有 Unicode 的字串常值

下列範例顯示需要反斜杠,才能在字串常值中包含 Unicode 字元。

print space = "Hello\u00A0World"

輸出

space
Hello World

逐字字串常值

下列範例會建立路徑,其中反斜杠是路徑的一部分,而不是逸出字元。 若要這樣做,字串 @ 符號會前面加上字串,並建立 逐字字串常值

print myPath = @'C:\Folder\filename.txt'

輸出

myPath
C:\Folder\filename.txt

多行字串常值

下列範例顯示多行字串常值的語法,其使用換行符和索引卷標來設定程式碼區塊的樣式。 如需詳細資訊,請參閱 多行字串常值

print program = ```
  public class Program {
    public static void Main() {
      System.Console.WriteLine("Hello!");
    }
  }```

輸出

program
public class Program { public static void Main () { System.Console.WriteLine (“Hello!”) ;} }

串連字串常值

下列表達式都會產生長度為13的字串。 如需詳細資訊,請參閱 串連分隔字串常值

print 
    none = strlen("Hello"', '@"world!"),
    whitespace = strlen("Hello" ', ' @"world!"),
    whitespaceAndComment = strlen("Hello" 
        // Comment
        ', '@"world!"
    );

輸出

whitespace whitespaceAndComment
13 13 13

模糊字串常值

在下列查詢輸出中 h ,會顯示字串。 不過,在追蹤或遙測中 h ,字串會以星號取代。 如需詳細資訊,請參閱 模糊字串常值

print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
    h'sv=2012-02-12&se=2013-04-13T0...'

輸出

blob
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12&se=2013-04-13T0...