本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 CloudFormation 範本中使用常規表達式
可以在 CloudFormation 範本的多個位置中使用規則表達式 (通常稱為 regexe),例如建立範本參數時可用於 AllowedPattern 屬性。
CloudFormation 中的所有規則表達式皆符合 Java regex 語法。如需 Java regex 語法及其建構的全面描述,請參閱 java.util.regex.Pattern
如果使用 JSON 語法撰寫 CloudFormation 範本,則必須新增額外的反斜線,以轉義規則表達式中的任何反斜線字元 (\)。這是因為 JSON 將反斜線解譯為轉義字元,而且您需要將其轉義,以確保其在規則表達式中被視為常值反斜線。
舉例來說,若您要在 JSON 範本的常規表達式中加入 \d 以比對數字字元,則必須將該字元編寫為 \\d。
在下列範例中,AllowedPattern 屬性會指定符合四個連續數字字元 (\d{4}) 的規則表達式。不過,由於在 JSON 範本中定義規則表達式,因此需要使用額外的反斜線 (\\d) 來轉義反斜線字元。
{ "Parameters": { "MyParameter": { "Type": "String", "AllowedPattern": "\\d{4}" } } }
如果使用 YAML 語法撰寫 CloudFormation 範本,則必須使用單引號 ('') 括住規則表達式。不需要額外的轉義。
Parameters: MyParameter: Type: String AllowedPattern: '\d{4}'
注意
CloudFormation 中的規則表達式只能在特定內容中用於驗證,例如 AllowedPattern。不支援其作為 CloudFormation 內建函數中的模式比對操作,例如 Fn::Equals,其僅執行確切的字串比較,而非模式比對。