正则表达式将Javascript字符串拆分为两个字符串

时间:2015-10-25 21:45:43

标签: javascript regex

我正在寻找一种方法来解析两个模式之间文件中出现的所有字符串。我有:

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']

有人有想法吗?

1 个答案:

答案 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 });

剥离/过滤项目会在您的问题中提供建议的结果。