从某个点js开始匹配字符串

时间:2013-08-17 12:45:44

标签: javascript regex

如何从字符串中的某个点开始js .match而不是从0开始? 例如,匹配[]之间的所有字符串 字符串:[abcd][efgh][iklm] 字符串.match(/\[\]/g)将返回[abcd],[efgh],[iklm] 但相反,我希望它返回类似[efgh],[iklm]

的内容

2 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式来避免匹配1st []

(?<=\].*?)\[.*?\]

但是,Javascripts正则表达式引擎不支持支持lookbehind!所以,它不会起作用


而是使用此正则表达式

\[.*?\] 

并避免第一场比赛

答案 1 :(得分:0)

如果您只想删除第一个(或另一个定义的数字)括号,您可以执行以下操作:

var string = "[abcd][efgh][iklm]";
var new_string = string.match(/\[.*?\](\[.*\])/, $1)[1];

$ 1组跳过第一组括号中的内容。但是,如果要跳过多个括号,则必须在括号中的内容之前添加另一个\[.*?\],因此如果文本不统一,则不起作用。

编辑 - 你也可以先剪掉你想先排除的第一个字符,但这又取决于你知道要剪掉多少个字符。

var string = "[abcd][efgh][iklm]";
var new_string = string.slice(6, string.length);
var final_string = new_string.match(/^\[.*\]$/)[0];