gpt4 book ai didi

Javascript 解析聊天文本

转载 作者:行者123 更新时间:2023-12-05 09:35:52 27 4
gpt4 key购买 nike

我正在尝试找到一种解析聊天文本的方法,但遇到了一些问题。我的目的是将文本拆分为字段(日期、时间、姓名、文本)并按姓名、日期获取统计信息,并获取每个人的单词/字母总数。

示例如下:

 10/06/2019, 23:17 - Nasu Alex Taranu Gilmeanu: De iesit iesim cu siguranta. Dar tre sa cadem de acord la o varianta
10/06/2019, 23:17 - Dura Stefanel: Serios acum
10/06/2019, 23:18 - Dura Stefanel: E cea mai frumoasa cazare de pe site: din câte am văzut pana acum
11/06/2019, 00:04 - Nasu Alex Taranu Gilmeanu: http://www.booking.com/Share-CJY
11/06/2019, 18:31 - Danutz: Sa îl mănânci - cu Botu :)

我正在使用的代码是下面的代码,但我无法弄清楚正则表达式应该是什么才能使其:

  • 用“:”而不是“:”分开,这样时间就在一起了。
  • 仅按第一次出现的指定字符拆分,因为拆分字符也可能在右侧的文本中,我只想拆分 4 个字段

我使用 Ajax 从文本文件加载 stringData 变量,我只是添加了 str 作为数据的一个小样本:

var stringData = $.ajax({
url: "http://localhost/_FunStuff/_ChatCounter/2021.01.04_textFile.txt",
async: false
}).responseText;

const str = `10/06/2019, 23:17 - Nasu Alex Taranu Gilmeanu: De iesit iesim cu siguranta. Dar tre sa cadem de acord la o varianta
10/06/2019, 23:17 - Dura Stefanel: Serios acum
10/06/2019, 23:18 - Dura Stefanel: E cea mai frumoasa cazare de pe site: din câte am văzut pana acum
11/06/2019, 00:04 - Nasu Alex Taranu Gilmeanu: http://www.booking.com/Share-CJY
11/06/2019, 18:31 - Danutz: Sa îl mănânci - cu Botu :)`;

function splitImportedData(stringData) {
$arrRows = stringData.split("\n");
for (rowi = 0; rowi < $arrRows.length; rowi++) {
var $strRow = $arrRows[rowi]
var $arrRow = $strRow.split(/[,:\s+\-]/);
if (rowi == 1) {
console.log($arrRow);
//alert($arrRow);
}
}
}

splitImportedData(str);

最佳答案

您不必对行进行拆分。

const str = `- 10/06/2019, 23:17 - Nasu Alex Taranu Gilmeanu: De iesit iesim cu siguranta. Dar tre sa cadem de acord la o varianta
- 10/06/2019, 23:17 - Dura Stefanel: Serios acum
- 10/06/2019, 23:18 - Dura Stefanel: E cea mai frumoasa cazare de pe site: din câte am văzut pana acum
- 11/06/2019, 00:04 - Nasu Alex Taranu Gilmeanu: http://www.booking.com/Share-CJY
- 11/06/2019, 18:31 - Danutz: Sa îl mănânci - cu Botu :)`;

const splitImportedData = (stringData) => {
return stringData.split("\n").map(row => {
const m = row.match(/^\s*?- (.+?), (.+?) - (.+?): (.+)/);
return {
date: m[1],
time: m[2],
name: m[3],
text: m[4],
}
});
}

console.log(splitImportedData(str));

关于Javascript 解析聊天文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65556805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com