Angular RegEx匹配注射

时间:2016-09-08 07:30:30

标签: javascript regex

我正在尝试编写匹配角度1.5类的每个依赖项的正则表达式。这是我到目前为止所得到的:

MyController.$inject = ['service1', 'service2', 'service3'];

MyController
    .$inject = [
        'service1',
        'service2',
        'service3',
    ];

这是几条测试线:

match = ['service1', 'service2', 'service3'];

这应该是结果:

service3

但我上面的正则表达式只会获取最后一项:$(document).ready(function() { var cnt = 2; $("#anc_add3").click(function() { $('#tbl4 tr').last().after('<tr><td><h3>PM [' + cnt + ']</h3></td><td><textarea> cnt++; }); var d = 2; $("#anc_addsupp").click(function() { $('#tbl4 tr:last-child').last().after('<tr><td><h3>Supplier [' + d + ']</h3></td><td> d++; }); ,我不知道为什么。有人可以帮忙吗?

更新

在这里工作:http://regexr.com/3e6c2

1 个答案:

答案 0 :(得分:1)

原因是当您量化捕获组时,仅捕获最后一个捕获组。您允许使用* 0次无限制地重复捕获组。您必须单独捕获它才能使其正常工作。

举例说明see this example at regex101。在这里,我重复了捕获组三次,而不是使用量词,因此所有三组都被捕获。

我还制作了一些非捕获(?:...)组来避免组中的 noise

如果组的数量有限,则可以使用。如果组的数量未知/大,则必须以编程方式解决。