Javascript使用模式分割字符串

Javascript使用模式分割字符串,javascript,jquery,arrays,split,Javascript,Jquery,Arrays,Split,字符串: 我希望最终输出如下 Q$: any character, number goes here. A$: Answer goes here C$: c,c1,c2,c3 如果有多个字符串,则数组应包含所有值 例如: 最终数组应将所有项作为一个数组进行验证 我试过了 $(函数(){ var y=数组(); str=`Q$:添加一个好问题 A$:答案 C$:选择0,选择1,选择2,选择2`; str.replace(/([ACQ]\$:[\S]*)(.*)/gmi,函数(匹配,p1,p2)

字符串:

我希望最终输出如下

Q$: any character, number goes here.
A$: Answer goes here
C$: c,c1,c2,c3
如果有多个字符串,则数组应包含所有值

例如:

最终数组应将所有项作为一个数组进行验证

我试过了

$(函数(){
var y=数组();
str=`Q$:添加一个好问题
A$:答案
C$:选择0,选择1,选择2,选择2`;
str.replace(/([ACQ]\$:[\S]*)(.*)/gmi,函数(匹配,p1,p2){
y、 推动([p1,p2]);
});
控制台日志(y);
});

根据您的要求,假设您的输出是有效的JSON对象,假设Q$、a$、C$的顺序始终相同,请尝试以下代码

String:

Q$: any character, number goes here.
A$: Answer goes here
C$: c,c1,c2,c3

Q$: any character, number goes here.A$: Answer goes here
C$: c,c1,c2,c3

Q$: any character, number goes here.    A$: Answer goes here

Q$: any character, number goes here.
A$: Answer goes here
C$: c,c1,c2
var str=“您的字符串”
//添加换行符以生成有效的格式,使搜索更容易
var formattedOutput=str.replace(/[ACQ]\$/gm,函数($0){
返回“\n”+$0
})
//使用所有换行符拆分
var arr=formattedOutput.trim().split(/\n+/)
var-res=[];

对于(var i=0;i您的输出不是有效的JS数组/对象,请正确更新它,只有这样我才能帮助您的eg字符串,第三个Q$缺少的3d C$将以Q$、A$、C$的顺序始终相同??
String:

Q$: any character, number goes here.
A$: Answer goes here
C$: c,c1,c2,c3

Q$: any character, number goes here.A$: Answer goes here
C$: c,c1,c2,c3

Q$: any character, number goes here.    A$: Answer goes here

Q$: any character, number goes here.
A$: Answer goes here
C$: c,c1,c2
var str = "Your String"
//Add LineBreaks for making a valid format to make our search easier
var formattedOutput = str.replace(/[ACQ]\$/gm, function($0) {
    return "\n" + $0
})

//Split with all LineBreaks
var arr = formattedOutput.trim().split(/\n+/)

var res = [];
for(var i=0;i<arr.length;i++) {
    if(arr[i].indexOf("Q$") != -1) {
        res.push({
            "Q$":arr[i].trim().split(/Q\$:\s+/)[1]
        })
    } else {
        if(arr[i].indexOf("A$") != -1) {
console.log(arr[i].trim().split(/A\$:\s+/))
            res[res.length-1]["A$"] = arr[i].trim().split(/A\$:\s+/)[1]
        } else if(arr[i].indexOf("C$") != -1) {
            res[res.length-1]["C$"] = arr[i].trim().split(/C\$:\s+/)[1]
        }
    }
}
console.log(res)