Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式字符串拆分_Javascript_Regex_String_Split - Fatal编程技术网

JavaScript正则表达式字符串拆分

JavaScript正则表达式字符串拆分,javascript,regex,string,split,Javascript,Regex,String,Split,我所拥有的是一条我想要分割的线 我可以在字符串中设置分隔符,例如: +++DELIMITER 1+++ text +++DELIMITER R+++ text 2 +++NAME OF DELIMITER+++ text n ... 提问后编辑: 字符串不包含换行符, 字符串的一个例子是: let string = "+++DELIMITER 1+++ text +++DELIMITER R+++ text 2 +++NAME OF DELIMITER+++ specialchar

我所拥有的是一条我想要分割的线

我可以在字符串中设置分隔符,例如:

+++DELIMITER 1+++

text

+++DELIMITER R+++

text 2

+++NAME OF DELIMITER+++

text n

...
提问后编辑:

字符串不包含换行符, 字符串的一个例子是:

let string = "+++DELIMITER 1+++ text +++DELIMITER R+++ text 2 +++NAME OF DELIMITER+++ specialchars \"£$%%£$\"<>";

text n";

我想我必须使用String.split方法,但我不知道使用哪种类型的正则表达式。

您可以拆分字符串并将单个字符串减少为成对字符串

var string='+++分隔符1+++文本++++分隔符++++文本2+++分隔符名称++++文本n',
部分=字符串
.split(/\+{3}/)
.切片(1)
.reduce((r,s,i)=>r.concat([i%2?r.pop().concat:[s]]),[]);
控制台日志(部件)给你(一步一步):

const str=`
+++分隔符1+++
文本
+++分隔符+++
文本2
+++分隔符名称+++
文本n
`
//首先用“”替换+++
常量strr=str.replace(/\+{3}/g',)
//将它们放在一个数组中
常量strArr=strr.split('\n').filter(r=>r!='')
//在单独的数组中推送接下来的两个值
警察终结者=[]
而(横向长度)最终推动(横向拼接(0,2))

console.log(finalArr)
您能分享一个示例输入和任何尝试吗?您共享的输入不是字符串变量您的字符串是否有某种换行符?请尝试
^\+{3}([^+]+).\s+((?:(?!^\+{3})。*\s*)*)
。看到这里的现场演示,我认为这是op的问题,并且缺少一些代码。
resultarray=[
     ["DELIMITER 1", "text"],
     ["DELIMITER R", "text 2"],
     ["NAME OF DELIMITER", "text n"]
     ...
];