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