Мне нужно сопоставить строку с префиксом приемлемой длины для этой строки.
Например, {3}abc
будет соответствовать, потому что часть abc
имеет длину 3
символов.{3}abcd
потерпит неудачу, поскольку abcd
имеет длину , а не 3
символов.
Я бы использовал ^\{(\d+)\}.{\1}$
(захватить число N
внутри фигурных скобок, затем любой символ N
раз), но похоже, что значение в конструкции повторения должно быть числом (или, по крайней мере, оно не будет принимать обратную ссылку).
Например, в JavaScript это возвращает true:
/^\{(\d+)\}.{3}$/.test("{3}abc")
Пока возвращается false:
/^\{(\d+)\}.{\1}$/.test("{3}abc")
Возможно ли это сделать в одном регулярном выражении, или мне нужно прибегнуть кразделить его на два этапа, например:
/^\{(\d+)\}/.test("{3}abc") && RegExp("^\\{" + RegExp.$1 + "\\}.{" + RegExp.$1 + "}$").test("{3}abc")