我有以下字符串,我需要用Regex提取两个变量。我一直在看教程,但没有得到我需要的结果。有人可以帮忙吗?
AWS-010062347904-uptree-base-prod-admin
我需要前两个连字符之间的12位数字作为帐户ID(即010062347904) 以及第二个连字符后的所有内容(例如,uptree-base-prod-admin)
答案 0 :(得分:0)
尝试使用正则表达式:(?:[^-]*-)(?<accountId>\d{12})(?:[^-]*-)(?<role>.*)
答案 1 :(得分:0)
在注释^AWS\-(?<accountid>\d+)
中的模式中,您从字符串的开头AWS-
匹配^
,然后使用命名捕获组accountId
进行捕获1倍以上的数字。
您可以通过引用该命名的捕获组来获取该accountId。要捕获角色,可以使用另一个命名的捕获组:
^AWS-(?<accountId>\d+)-(?<role>.*)$
如果您希望第一个连字符后的数字而不考虑字符串开头的内容,则可以在开头匹配0+次而不使用连字符的情况下使用否定的字符类[^-]*
:
^[^-]*-(?<accountId>\d+)-(?<role>.*)$