Javascript用模式拆分字符串
Javascript split the string with patterns
>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
]
如果有多个字符串,则数组应具有所有值。
例如:
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
最终数组应将所有项目作为要验证的数组。
我试过了
$(function() {
var y = Array();
str = `Q$:ADD A GOOD QUESTION
A$:ANSWER
C$:choice0, choice1, choice2, choice2`;
str.replace(/([ACQ]'$:['S]*)(.*)/gmi, function(match, p1, p2) {
y.push([p1, p2]);
});
console.log(y);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我错过了一些东西。它在少数情况下有效。在少数情况下,它没有。任何将它们拆分的建议。
我所理解的,根据您的要求,并假设您的输出为有效的 JSON 对象,假设 Q$、A$、C$ 的顺序将始终相同,请尝试此代码
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)
var str = $("#test").val()
//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) {
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]
}
}
}
$("#output").html(JSON.stringify(res))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="test" rows="10" tabindex="3">
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
</textarea>
<div>
<span id="output"></span>
</div>
工作小提琴
相关文章:
- 将字符串拆分为数组时出现JavaScript错误
- 如何将字符串拆分为字符,但在javascript中保留空格
- 将字符串拆分为;只要它's不在»«
- 如何将以下字符串拆分为二维数组:
- 将javascript中的字符串拆分为一个数组
- 这个字符串拆分器可以重构或改进吗
- Regex将字符串拆分为大小适中的块
- 将字符串拆分为具有固定字符数的数组
- 将字符串拆分为数组
- 如何在没有javascript中的split函数的情况下将字符串拆分为单词
- 字符串拆分并获取第一次和最后一次出现
- node.js将接收到的字符串拆分为不同的变量,然后格式化为json字符串
- 如何将复杂的字符串拆分为多个部分
- 将字符串拆分为多维数组
- 将逗号分隔的字符串拆分为单独的字符串
- 如何在 Javascript 中以特定间隔将字符串拆分为数组
- Javascript 字符串拆分
- 使用 jQuery 将长字符串拆分为文本块
- 在javascript中将字符串拆分为句子
- 在将字符串拆分为硒时获取空输出