diff --git a/src/utils/pattern.spec.ts b/src/utils/pattern.spec.ts index 59983e14..97fd6818 100644 --- a/src/utils/pattern.spec.ts +++ b/src/utils/pattern.spec.ts @@ -112,6 +112,7 @@ describe('Utils → Pattern', () => { it('should return false for unfinished regex character class', () => { assert.ok(!util.isDynamicPattern('[')); + assert.ok(!util.isDynamicPattern('['.repeat(999999))); assert.ok(!util.isDynamicPattern('[abc')); }); diff --git a/src/utils/pattern.ts b/src/utils/pattern.ts index 6190b66f..c1a718d6 100644 --- a/src/utils/pattern.ts +++ b/src/utils/pattern.ts @@ -9,7 +9,7 @@ const GLOBSTAR = '**'; const ESCAPE_SYMBOL = '\\'; const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; -const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[.*]/; +const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\(.*\|.*\)/; const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\(.*\)/; const BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\.\.).*}/;