Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 名称或ID的正则表达式_Regex_Amazon Web Services_Regex Lookarounds - Fatal编程技术网

Regex 名称或ID的正则表达式

Regex 名称或ID的正则表达式,regex,amazon-web-services,regex-lookarounds,Regex,Amazon Web Services,Regex Lookarounds,我正在寻找具有以下可能性的正则表达式,其中对于字段,它只允许帐户Id/ARN(以下之一): AWS账号:12位数字 AWS帐户ARN:格式:ARN:AWS:iam::AWS帐户ID:根。 这里的AWS帐户ID是一个12位数字 IAM用户ARN:格式:ARN:aws:IAM::aws帐户ID:user/user-name-1。 此处AWS帐户ID为12位数字,用户、用户名-1为字母数字 该字段是一个逗号分隔的列表,可能有一个或多个值 使用逗号标记它 对于每个令牌: 测试它的长度是否为12,并且只包

我正在寻找具有以下可能性的正则表达式,其中对于字段,它只允许帐户Id/ARN(以下之一):

  • AWS账号:12位数字
  • AWS帐户ARN:格式:ARN:AWS:iam::AWS帐户ID:根。
    这里的AWS帐户ID是一个12位数字
  • IAM用户ARN:格式:ARN:aws:IAM::aws帐户ID:user/user-name-1。
    此处AWS帐户ID为12位数字,用户、用户名-1为字母数字
  • 该字段是一个逗号分隔的列表,可能有一个或多个值

  • 使用逗号标记它
  • 对于每个令牌:
  • 测试它的长度是否为12,并且只包含数字(您可以使用正则表达式,但实际上没有必要:
    ^\d{12}$
  • 否则,使用正则表达式进行测试:
    ^arn:aws:iam::\d{12}:(?:root | user\/[A-Za-z0-9]+)$
  • 你可以把整件事都注册起来<代码>^((?:\d{12}arn:aws:iam::\d{12}:(?:root | user\/[A-Za-z0-9]+),?\s*)*

    显然,您也可以在正则表达式中使用变量,而不是替换硬代码


    对于用户名,将任何其他合法字符添加到字符类
    [A-Za-z0-9]
    ,例如,对于下划线:
    [A-Za-z0-9\
    。您还可以提供最小和最大长度,例如最小5,最大15:
    [a-Za-z0-9]{5,15}

    您可以提供一个示例,说明如何用逗号分隔这些多个选项吗?目前,您提供的正则表达式也有13位数字,我不知道您使用的语言。不过,要找到如何做到这一点非常容易。e、 google“java split string”和正则表达式一样,
    \d{min,max}
    捕获最小和最大时间之间的任何数字。如果不指定最大值,它将只查找最小的固定金额<代码>\d{12}只能匹配12位数字。