Regexp用于匹配重复相同的单词或部分单词

时间:2017-10-19 10:36:59

标签: javascript html regex

我放弃了:我根本无法找到解决问题的方法。 我已经在堆栈溢出站点检查了几个小时,但我找不到解决方案。 我有这些字符串:

table-2 table
table-4 seat
table-4 seat table-3

我想使用正则表达式查看它是否已包含'table-'或'table'或'tabl'或'tab'...

仅在示例N.2中

(?).test(string) === true。我怎么能这样做?

这是一次尝试:

/\b([a-z(-0-9)?]+)\b(?=.*(\b)+)/g

1 个答案:

答案 0 :(得分:0)

此代码剪切通过了您的测试标准:

[
  'table-2 table',
  'table-4 seat',
  'table-4 seat table-3',
].forEach(word => {
  console.log(word, !/(tabl?e?\-?).*?\1/.test(word));
})

<强>更新 对于没有确切单词可用的情况(参见下面的评论),可以检查一些重复的子串的存在,这些子串本身形成一种单词。在这种情况下,测试可能看起来像:!/\b(\S+)\b.*?\1/.test(word),但当然,根据实际任务,确切的解决方案可能会有所不同。