共用方式為


字串數據類型

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

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

注意

  • 在內部,字串會以UTF-8編碼。 在擷取時,無效的 (非 UTF8) 字元會取代為 U+FFFD Unicode 取代字元。
  • Kusto 沒有相當於單一字元的數據類型。 單一字元會以長度為1的字串表示。
  • string擷取數據類型時,如果記錄中的單一字串值超過 1MB(使用 UTF-8 編碼測量),則會截斷值並擷取成功。 您可以變更資料列的編碼原則來增加MaxValueSize資料列的 。
  • 如果記錄或整個記錄中的單一字串值超過允許的數據限制 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!"
    );

輸出

none 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...