亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript優化正則表達式函數以從包含關鍵字的字符串中提取句子

Javascript優化正則表達式函數以從包含關鍵字的字符串中提取句子

一只名叫tom的貓 2022-10-27 15:34:52
我目前有一個函數來獲取一個字符串,將其分解為句子,然后提取包含用戶定義關鍵字的句子并返回它們:function getSentencesWithWord(word, text) {    let sentenceArray = text.replace(/([.])\s*(?=[A-Z])/g, "$1|").split("|")    return sentenceArray.filter(sentence => sentence.includes(word))}目前,此功能有效。但是,我需要使用此功能搜索的文本量非常大;它正在搜索大約 30 個 google 文檔,每個文檔最多可達 75 頁,并且搜索某些術語(例如單詞“the”)可能需要一分鐘才能完成該功能。有沒有更優化的方法來搜索和提取這么多文本?編輯:因為有人在評論中問,word變量只是從 HTML 頁面上的文本輸入中獲得的字符串,而text變量是通過 Google Apps 腳本中的此函數獲得的字符串:function getText(docID){    let doc = DocumentApp.openById(docID);    let textToSearch = doc.getBody().getText();    return textToSearch;}我有一個需要訪問的所有 google 文檔 ID 的數組,我只是遍歷數組并獲取每個文檔的文本
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

無法使用 Google Apps Script 找到更快的方法來實現這一點,所以我只是回到 Node.js 并最終使用 Google Drive API 將文件下載為 .txt 文件,這些文件要小得多,因此我可以搜索他們現在快得多



查看完整回答
反對 回復 2022-10-27
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

您提供的替換replace(/([.])\s*(?=[A-Z])/g, "$1|")對我不起作用==沒有更改就得到了相同的字符串...

這個怎么樣:

("|"+text.toLowerCase().replace(/\s/g, "|")+"|").includes("|"+word.toLowerCase()+"|")

或這個:

("|"+text.toLowerCase().split(" ").join("|")+"|").includes("|"+word.toLowerCase()+"|")



查看完整回答
反對 回復 2022-10-27
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號