我放弃了:我根本无法找到解决问题的方法。 我已经在堆栈溢出站点检查了几个小时,但我找不到解决方案。 我有这些字符串:
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
答案 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)
,但当然,根据实际任务,确切的解决方案可能会有所不同。