我有以下字符串,我需要从Regex中提取两个变量。我一直在看教程,但没有得到我需要的结果。有人可以帮忙吗?
AWS-010062347904-uptree基-PROD-管理
我需要前两个连字符之间的12位数作为accountid(即010062347904)和第二个连字符之后的所有内容作为角色(即uptree-base-prod-admin)
试试Regex:(?:[^-]*-)(?<accountId>\d{12})(?:[^-]*-)(?<role>.*)
根据你在^AWS\-(?<accountid>\d+)
评论中的模式,你从字符串的AWS-
开始匹配^
,然后你使用一个命名的捕获组accountId
来捕获一个数字的1+倍。
您可以通过引用该命名捕获组来获取该accountId。要捕获角色,您可以使用另一个命名捕获组:
^AWS-(?<accountId>\d+)-(?<role>.*)$
如果你想要第一个连字符后面的数字,而不考虑字符串开头的内容,你可以在开头匹配0+次而不是连字符时使用否定字符类[^-]*
:
^[^-]*-(?<accountId>\d+)-(?<role>.*)$