javascript - 逆for循环组成搜索字符串
问题描述
我必须检查字符串的某些部分是否包含在更大的字符串中,即用于文本搜索,例如:
let search = "Joe is a good boy"
let text = "One of the better boys is Joe"
如何查看整个字符串或其中的一部分是否包含在文本中?我试图search.split()
寻找每个拆分的字符串,但这并不好:我想至少搜索“Joe”、“Joe is”、“Joee is a”等字符串是否存在部分匹配。
你能建议我做任何功能吗?
解决方案
要检查常用词,您可以将两个字符串转换为词集并计算这些集的交集。
let search = "Joe is a good boy"
let text = "One of the better boys is Joe"
let words = str => new Set(str.split(/\s+/g))
let intersection = (a, b) => [...a].filter(x => b.has(x))
console.log(intersection(words(text), words(search)))
如果您正在寻找LCS,请参阅重复的线程。
推荐阅读
- excel - 从单元格复制到文本框并使用 vba 维护所有格式
- dart - 添加到列表的开头
- latex - Latex GitHub 链接以符号显示
- stm32 - STM32CubeIDE只能刷一次,没有SWD调试
- javascript - Puppeteer page.click 有效,但 page.evaluate + 文档点击无效
- ipython - 在 Jupyter 笔记本中导出为 PDF 时图像显示后字体更改
- sql - 如何编写 JOIN 条件(使用 USING 子句)
- jquery - 将更新操作链接到 jquery 对话框的关闭按钮
- c++ - C++ 指针数组
- javascript - Nginx,Sub_filter,javascipt,替换包含$的字符串