gpt4 book ai didi

javascript - 正则表达式查找 4 个字符的模式

转载 作者:行者123 更新时间:2023-11-30 15:57:41 25 4
gpt4 key购买 nike

我很困惑如何做到这一点。我有一个匹配此模式的字符串数组:

AABC,
ABBC,
ABCC,
AAAB,
ABBB

我希望使用正则表达式来确定特定字符串是否与这些模式之一匹配。字符串本身实际上并不由 A、B 或 C 组成。这只是为了展示模式的样子。例如:模式 AAAB 不应等于 BAAA。

你能帮忙吗?

编辑 - 例如:

['TTES', 'TEES', 'TESS', 'TTTE', 'TEEE']

array[0] 应该匹配 AABC,

array[1] 应该匹配 ABBC,

array[2] 应该匹配 ABCC,

array[3] 应该匹配 AAAB,

array[4] 应该匹配 ABBB,

最佳答案

您可以通过这种方式从您的模式生成 RegExp:

var stringToPattern = function (string) {
var regexString = string.split('').map(function (char, position, string) {

var prevIndex = string.indexOf(char);

return prevIndex < position ? '(\\' + (prevIndex + 1) + ')' : '(.)';

}).join('');

return new RegExp(regexString);
};

函数根据输入字符串生成正则表达式:

  • AABC/(.)(\1)(.)(.)/
  • ABBC/(.)(.)(\2)(.)/
  • 等...

例子:

stringToPattern('AABC').test('TTES'); // true
stringToPattern('AABC').test('TEES'); // false

stringToPattern('ABBC').test('TEES'); // true
stringToPattern('ABBC').test('TTES'); // false

更新

var getMatchingPatterns = function (string) {
var patterns = [
'AABC',
'ABBC',
'ABCC',
'AAAB',
'ABBB'
];
return patterns.filter(function (pattern) {
return stringToPattern(pattern).test(string);
});
};

例子:

getMatchingPatterns('ttob'); // ['AABC']
getMatchingPatterns('ottb'); // ['ABBC']

关于javascript - 正则表达式查找 4 个字符的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241818/

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