我正在寻找一种方法来解析两个模式之间文件中出现的所有字符串。我有:
var test = "XXXX\n sssssssss\n1111\nXXXX\nssssssssss ssss\nXXXX\nssssssssssssss\n1111111111\nXXXX\n"
var testRE = test.match(/XXXX\n([.\n]+)XXXX/g);
console.log(testRE); // null
这个正则表达式和我试过的许多其他人一样没有得到我想要的结果。我想要一个匹配所有出现的正则表达式,以得到这样的结果:
[' sssssssss\n1111\n', 'ssssssssss ssss\n', 'ssssssssssssss\n1111111111\n']
有人有想法吗?
答案 0 :(得分:1)
您可以使用String.split
方法解决此问题,例如:
var value = "XXXX\n sssssssss\n1111\nXXXX\nssssssssssssss\nXXXX\nssssssssssssss\n1111111111\nXXXX\n"
var items = value.split("XXXX\n");
console.log(items);
输出:
>>> ["", " sssssssss\n1111\n", "ssssssssss ssss\n", "ssssssssssssss\n1111111111\n", ""]
如果需要,您可以从项目的开头和结尾删除空值:
if (items[0].length == 0) {
items = items.slice(1);
}
if (items[items.length - 1].length == 0) {
items = items.slice(0, items.length - 1);
}
或者只是过滤掉所有空值:
items = items.filter(function(n){ return n.length != 0 });
剥离/过滤项目会在您的问题中提供建议的结果。