鍍金池/ 問答/Java  HTML/ 字符串中取得雙$花括號之中的內(nèi)容

字符串中取得雙$花括號之中的內(nèi)容

我想匹配

$${}$$

中的內(nèi)容

str比較復(fù)雜,如下,我想找出所有雙$$花括號的內(nèi)容,并放進(jìn)一個數(shù)組,該如何做?

[{"field_id":"DM0002","field":"$${gender}$$","weight":"0.5","data_type":"1","condition_scores":[{"condition":{"type":"and","options":[{"option":"gt","value":"$${gender}$$","type":"word"},{"option":"gte","value":"$${userName}$$","data_type":"","type":"word","field_id":"","filed":""}]},"score":"50"},{"condition":{"type":"and","options":[{"option":"gt","value":"$${gender}$$","data_type":"","type":"word","field_id":"","filed":""},{"option":"lt","value":"$${gender}$$","data_type":"","type":"word","field_id":"","filed":""}]},"score":"80"}]}]

JSON如下

[
    {
        "field_id":"DM0002",
        "field":"$${gender}$$",
        "weight":"0.5",
        "data_type":"1",
        "condition_scores":[
            {
                "condition":{
                    "type":"and",
                    "options":[
                        {
                            "option":"gt",
                            "value":"$${gender}$$",
                            "type":"word"
                        },
                        {
                            "option":"gte",
                            "value":"$${userName}$$",
                            "data_type":"",
                            "type":"word",
                            "field_id":"",
                            "filed":""
                        }
                    ]
                },
                "score":"50"
            },
            {
                "condition":{
                    "type":"and",
                    "options":[
                        {
                            "option":"gt",
                            "value":"$${gender}$$",
                            "data_type":"",
                            "type":"word",
                            "field_id":"",
                            "filed":""
                        },
                        {
                            "option":"lt",
                            "value":"$${gender}$$",
                            "data_type":"",
                            "type":"word",
                            "field_id":"",
                            "filed":""
                        }
                    ]
                },
                "score":"80"
            }
        ]
    }
]

自己嘗試使用

/^\$\$\{(\w{1,10})\}\$\$$/.exec('$${4555}$$222$${4555555788}$$')

匹配不成功,求解答

回答
編輯回答
傻丟丟
/\$\$\{(\w{1,10})\}\$\$/.exec('$${4555}$$222$${4555555788}$$')

或者

/^\$\$\{(\w+)\}\$\$$/.exec('$${4555}$$222$${4555555788}$$')
2017年9月5日 04:43
編輯回答
傲寒
var str = '[{"field_id":"DM0002","field":"$${gender}$$","weight":"0.5","data_type":"1","condition_scores":[{"condition":{"type":"and","options":[{"option":"gt","value":"$${gender}$$","type":"word"},{"option":"gte","value":"$${userName}$$","data_type":"","type":"word","field_id":"","filed":""}]},"score":"50"},{"condition":{"type":"and","options":[{"option":"gt","value":"$${gender}$$","data_type":"","type":"word","field_id":"","filed":""},{"option":"lt","value":"$${gender}$$","data_type":"","type":"word","field_id":"","filed":""}]},"score":"80"}]}]'
var reg = /\$\$\{(\w+)\}\$\$/g;
var result = str.match(reg).map(item => item.replace(reg,'$1'));
console.log(result);

OR

var result = [];
var r = ''
do
{
    r = reg.exec(str);
    r && result.push(r[1]);
}
while (r !== null) 
2018年6月13日 03:47