我有通过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单独检查等等.但不确定如何实现正则表达式来删除整个字符串的部分.
假设你得到完整的答复:
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)
在此使用正则表达式捕获组.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |