我需要匹配以该字符串的可接受长度为前缀的字符串。在重复构造中使用正则表达式返回引用({N})
例如,{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")
啊,我想尽可能多。感谢您确认我的怀疑。 – davecardwell 2010-08-06 13:29:53