0

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

4

2 回答 2

0

你可以使用这个正则表达式来避免匹配第一个[]

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

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


而是使用这个正则表达式

\[.*?\] 

并避免第一场比赛

于 2013-08-17T12:48:33.290 回答
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];
于 2017-01-04T23:30:18.237 回答