从正则表达式制作数组

Posted

技术标签:

【中文标题】从正则表达式制作数组【英文标题】:Make array from regex 【发布时间】:2011-03-26 02:16:46 【问题描述】:

我有这个字符串:

example1example2example3

这是查找这些anything in it的正则表达式:

/\.*?\/g

现在我想知道如何将它们放在一个数组中,这样我就可以做一个for in 语句。

我想要一个类似array("example1","example2","example3"); 的数组?

【问题讨论】:

如果你有一个实际的数组,你最好使用一个简单的for 循环而不是for...in,这可能会给你比你讨价还价的更多:所有扩展将列出到Array 的原型,以及数组中的项目。 您不应该使用for-in 迭代数组。最好使用 C 风格的 for 循环。 【参考方案1】:
var matches = 'example1example2example3'.match(/\.*?\/g);
// ['example1', 'example2', 'example3']

See it here.

另外,您可能应该使用for 循环来遍历数组。 for in 会产生副作用,比如收集更多的东西来迭代原型链。你可以使用hasOwnProperty(),但for 循环就简单多了。

为了提高性能,您还可以在将length 属性包含在for 条件中之前对其进行缓存。

【讨论】:

【参考方案2】:
your_array = string.match( pattern )

http://www.w3schools.com/jsref/jsref_match.asp

【讨论】:

这会产生一个像array("example1","example2","example3");这样的数组吗? 他是个初学者,我想你不会通过发布那些函数签名来帮助他;) @zolex 是的。我喜欢至少链接到 w3schools 而不是直接的文档,因为他们有示例和“立即尝试”功能。

以上是关于从正则表达式制作数组的主要内容,如果未能解决你的问题,请参考以下文章

从数组中删除与正则表达式不匹配的元素

将字符串从数组推入正则表达式

Perl 中的正则表达式组:如何从正则表达式组中捕获与字符串中出现的未知数量/多个/变量匹配的元素到数组中?

如何制作将多个模式匹配到同一索引的python正则表达式

基于正则表达式从字符串中提取字符串数组? - 斯威夫特

无法从函数返回的变量索引到空数组,或访问返回的正则表达式数据时出现问题