找到两次相同的随机模式

时间:2018-07-09 10:18:20

标签: javascript string

仅在字符后总是跟相同字母(随机和未知)的情况下,如何查找字符?

例如:

  

kelmqaetrstaeiii

例如,以字母a为例,它两次后跟同一个字母e,所以我希望能找到它,但要注意以下几点:

  

kelmqaetrstafiii

我们有aeaf,在a之后有2个字母不同的字母,在这种情况下,不应采取任何措施。

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以遍历字符串,并检查字符串中是否已存在一对:

function hasPair(str) {
    const dupe = {};
    for (let index = 0; index < str.length - 1; index++) {
        const pair = str.substr(index, 2);
        if (dupe[pair])
            return pair;
        dupe[pair] = true;
    }
    return false;
}

console.log(
    hasPair("kelmqaetrstaeii"),
    hasPair("kelmqaetrstaii")
);

答案 1 :(得分:0)

匹配第一个字母,然后使用前瞻,匹配第二个字母,并使用反向引用:

const re = /(\w)(?=(\w).+\1\2)/;
console.log('kelmqaetrstaeiii'.match(re)[0]);
console.log('kelmqaetrstafiii'.match(re));