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