gpt4 book ai didi

javascript - 匹配字符串中的确切单词

转载 作者:行者123 更新时间:2023-11-30 11:14:02 26 4
gpt4 key购买 nike

我需要一种方法来将单词与字符串进行匹配,并且不会出现误报。让我举个例子来说明我的意思:

  • “/thing”应该匹配字符串“/a/thing”
  • “/thing”应该匹配字符串“/a/thing/that/is/here”
  • “/thing”应该匹配字符串“/a/thing_foo”

基本上,如果第一个字符串和第二个字符串中存在完全相同的字符,它应该匹配,但如果第二个字符串中有连续字符(例如 thing_foo 中的下划线)则不会匹配。

现在,我正在这样做,但没有用。

let found = b.includes(a);//真

希望我的问题足够清楚。感谢您的帮助!

最佳答案

男孩把这件事变成了经典XY Problem .

如果我不得不猜测,您想知道路径是否包含特定段。

在这种情况下,将字符串拆分为 positive lookahead对于 '/' 并使用 Array.prototype.includes()

const paths = ["/a/thing", "/a/thing/that/is/here", "/a/thing_foo"]
const search = '/thing'

paths.forEach(path => {
const segments = path.split(/(?=\/)/)
console.log('segments', segments)
console.info(path, ':', segments.includes(search))
})

使用正先行表达式 /(?=\/)/ 允许我们在 / 上拆分字符串,同时保持 / 前缀在每个分割市场中。


或者,如果您仍然非常热衷于使用直接的正则表达式解决方案,您会想要这样的东西

const paths = ["/a/thing", "/a/thing/that/is/here", "/a/thing_foo", "/a/thing-that/is/here"]
const search = '/thing'

const rx = new RegExp(search + '\\b') // note the escaped backslash

paths.forEach(path => {
console.info(path, ':', rx.test(path))
})

请注意,如果搜索字符串后跟连字符或波浪号,这将返回误报,因为它们被认为是单词边界。您将需要一个更复杂的模式,我认为第一个解决方案可以更好地处理这些情况。

关于javascript - 匹配字符串中的确切单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52377431/

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