diff --git a/packages/core/src/utils/variantGroup.ts b/packages/core/src/utils/variantGroup.ts index c36a0430b9..edb8ec7a9f 100644 --- a/packages/core/src/utils/variantGroup.ts +++ b/packages/core/src/utils/variantGroup.ts @@ -1,6 +1,6 @@ import type MagicString from 'magic-string' -export const regexClassGroup = /((?:[!\w+:_/-]|\[&?>?:.+?\])+?)([:-])\(((?:[~!\w\s:/\\,%#.$-]|\[.*?\])*?)\)/gm +export const regexClassGroup = /((?:[!\w+:_/-]|\[&?>?:?.*\])+?)([:-])\(((?:[~!\w\s:/\\,%#.$-]|\[.*?\])*?)\)/gm export function expandVariantGroup(str: string, seperators?: ('-' | ':')[]): string export function expandVariantGroup(str: MagicString, seperators?: ('-' | ':')[]): MagicString diff --git a/test/variant-group.test.ts b/test/variant-group.test.ts index 0644b81e63..33c5c603a4 100644 --- a/test/variant-group.test.ts +++ b/test/variant-group.test.ts @@ -32,4 +32,8 @@ describe('variant-group', () => { test('square bracket', async () => { expect(expandVariantGroup('b:[&:not(c)]:d:(!a z)')).toEqual('!b:[&:not(c)]:d:a b:[&:not(c)]:d:z') }) + + test('square bracket case2', async () => { + expect(expandVariantGroup('[&]:(a-b c-d)')).toEqual('[&]:a-b [&]:c-d') + }) })