繁体   English   中英

正则表达式以获取方括号之间的字符串和数字-JavaScript

[英]Regular expression to get string and number between square brackets - javascript

我需要从该字符串中获取数字(1)和字符串(开始),以便我可以递增数字,以下正则表达式可以正常工作,但输出中仍带有[]-任何人都有可以删除[]的正则表达式也一样?

var $name = 'event[1][start]';
var parts = $name.match(/\[(.*?)\]/g);
console.log(parts[0] + ' - ' + parts[1]);
// I wish to do something like this eventually...
// var $newName = 'event[' + ++parts[0] + '][' + parts[1] + ']';

非常感谢

如果字符串的格式始终为something[part0][part1] ,请使用以下命令:

var parts = $name.match(/.*?\[(.*?)\]\[(.*?)\]/);
console.log(parts[1] + ' - ' + parts[2]);

当使用global标志时,您只会得到整个正则表达式而不是捕获组的匹配数组。 但是在您的情况下,您似乎不需要全局,您只想捕获两个特定的元素,因此请使用两个捕获组。

请注意,捕获组编号从1开始-parts parts[0]是整个regep的匹配项。

就这样吧

var $name = 'event[1][start]';
var parts = $name.match(/\w+/g);
console.log(parts[1] + ' - ' + parts[2]);

您可以执行以下操作以提取捕获组:

var $name = 'event[1][start]';
var pattern=new RegExp("\\[(.*?)\\]","g");
var parts = pattern.exec($name);
while (parts!=null) {
    console.log(parts[1]);
    parts = pattern.exec($name);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM