样本输入
outer
示例输出
test_fun_vec =
Vectorize(
function(x,y) {
outer(
x,
y,
test_fun
)
}
)
test_fun_vec(a_mtx,b_mtx)
#[1] 4 0 2 7 4 6 3 5 1 5 7 5 10 0 9 11 15 17 8 11 9 12 10 16
#[25] 10 22 20 25 15 24
在这里instanceFromRest应该返回{{"access_token":"00D7F00000027wN!****.*****gIr2J3.*********","instance_url":"https://nagesingh-dev-ed.my.salesforce.com","id":"https://login.salesforce.com/id/00D7F00000027wNUAQ/****","token_type":"Bearer","issued_at":"1537367467287","signature":"nl1tdrQ+TY64fi068KPOKGrmHf4IU3E/*****="}}
在使用pattern='"access_token":"([^"]*)"'
if [[ $response =~ $pattern ]]; then
access_token="${BASH_REMATCH[1]}"
instanceFromRest="${BASH_REMATCH[2]}"
echo "instance is now ${instanceFromRest}"
#uncomment to check token results
echo "token: ${access_token}"
时,我也想在模式中包含https://nagesingh-dev-ed.my.salesforce.com
,以便我也可以获取BASH_REMATCH
并获取instance_url吗?
我知道instance_url的模式将与access_token相同,但是如何将其包含在同一模式中,以便可以执行instance_url
并获取第二个参数?
${BASH_REMATCH[2]}
答案 0 :(得分:0)
使用当前的方法,您可能只获得两个匹配组的单场比赛:
pattern='"access_token":"([^"]*).*"instance_url":"([^"]*)'
^^^^^^^ ^^^^^^^
请注意.*
匹配模式两部分之间的任何0+字符。
在比赛中,${BASH_REMATCH[1]}
将保留access_token
值,而${BASH_REMATCH[2]}
将保留instanceFromRest
值。
请参见online demo。