Cloudformation模板中的电子邮件的AllowedPattern

74次阅读
没有评论

问题描述

在Cloudformation模板中遇到了一个问题,他想要为电子邮件参数指定一个正则表达式。他尝试了/[^\s@]+@[^\s@]+\.[^\s@]+/,但不起作用。他想知道Cloudformation模板中电子邮件的正则表达式是什么。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在AWS CloudFormation模板中,使用JSON语法来指定对象和数据,因此在正则表达式中的反斜杠字符前需要添加一个额外的反斜杠,否则JSON会将其解释为转义字符。
例如,如果你在正则表达式中包含\d来匹配一个数字字符,你需要在JSON模板中将其写为\\d
同样的规则也适用于\s表达式。使用\\s即可。
你可以在AWS CloudFormation文档中找到更多关于正则表达式的信息:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-regexes.html

方案2

请注意以下操作注意版本差异及修改前做好备份。
根据回答2,你可以在YAML格式中使用以下方式来定义AllowedPattern:

Parameters:
  MyEmail:
    Description: Email for notifications
    Type: String
    AllowedPattern: '[^@]+@[^@]+\.[^@]+'

请注意,如果你的值包含特殊字符(如:{}[],&*#?|-<>=!%@),请使用引号括起来。
你可以在以下链接中找到更多关于YAML语法的信息:https://stackoverflow.com/questions/19109912/do-i-need-quotes-for-strings-in-yaml

正文完