Javascript获取字符串之间的所有文本

Jas*_*hen 2 javascript regex

我有通过TCP传递给我的字符串内容.此信息仅相关,因为这意味着我不会一直检索相同的字符串.我有一个<start><stop>分隔符,以确保任何时候我通过TCP获取数据,我输出完整的内容.

我传入的内容如下:

<start>Apple Bandana Cadillac<stop>

我想在这两者之间得到的一切<start><stop>.所以只是Apple Bandana Cadillac.

我这样做的脚本如下:

servercsv.on("connection", function(socket){
    let d_basic = "";
    socket.on('data', function(data){
        d_basic += data.toString();
        let d_csvindex = d_basic.indexOf('<stop>');
            while (d_csvindex > -1){
                try {
                    let strang = d_basic.substring(0, d_csvindex);
                    let dyson = strang.replace(/<start>/g, '');
                    let dson = papaparse.parse(dyson);
                    myfunction(dson);
                }
                catch(e){ console.log(e); }
                d_basic = d_basic.substring(d_csvindex+1);
                d_csvindex = d_basic.indexOf('<stop>');
            }
    });
});
Run Code Online (Sandbox Code Playgroud)

这意味着我在<stop>字符串之前获取所有内容并输出它.我还包括该行,let dyson = strang.replace(/<start>/g, '');因为我想删除<start>文本.

但是,因为这是TCP,我无法保证获得此字符串的所有部分.结果,我经常回来stop>Apple Bandana Cadillac<stop>或者有一些变化(例如start>Apple Bandana Cadillac<stop>.我不能做到这一点strang.replace("start>", "")

理想情况下,我想我的分离器,选择内容,之间<start><stop>.不只是<stop>.但是,我不确定该怎么做.

或者,我也可以选择<start><stop>在我的while循环中检索所有字符串组合的正则表达式,然后删除它们.因此,请<, s, t, a, r, t单独检查等等.但不确定如何实现正则表达式来删除整个字符串的部分.

abs*_*sin 5

假设你得到完整的答复:

var test = "<start>Apple Bandana Cadillac<stop>";
var testRE = test.match("<start>(.*)<stop>"); 
testRE[1] //"Apple Bandana Cadillac"
Run Code Online (Sandbox Code Playgroud)

如果<start>和之间有新的行<stop>

var test = "<start>Apple Bandana Cadillac<stop>";
var testRE = test.match("<start>([\\S\\s]*)<stop>"); 
testRE[1] //"Apple Bandana Cadillac"
Run Code Online (Sandbox Code Playgroud)

在此使用正则表达式捕获组.