1

这是我之前的问题的延续:Parse text file with regex,但是因为我正在创建新表达式,所以我不想编辑该问题。

感谢 Jerry,我能够找到匹配项,但我需要变得更复杂。

ExtJS 中的类可以有 requires 和 mixins 部分:

Ext.define('Ext.Window', {
    extend: 'Ext.Panel',
    requires: ['Ext.util.MixedCollection', 'Ext.util.BasicDrag'],
    mixins: {
        draggable: 'Ext.util.Draggable',
        droppable : 'Ext.utils.Droppable'
    }
});

感谢上一个问题,我能够extend参与其中,但从上面的例子中我想得到:

Ext.Panel
Ext.util.MixedCollection
Ext.util.BasicDrag
Ext.util.Draggable
Ext.utils.Droppable

这一切都可以使用单个 RegEx 完成吗?或者可能是 3 个不同的正则表达式(一个来自 Jerry 的回答)

requires 部分可以如下所示:

requires: 'Ext.util.MixedCollection'

或者

    requires: ['Ext.util.MixedCollection', 'Ext.util.BasicDrag'],

或者

    requires: [
               'Ext.util.MixedCollection', 
               'Ext.util.BasicDrag'
              ],

与 mixins 相同。
这背后的想法是获取所有依赖项并构建自定义缩小的 JS 文件(我知道 Sencha CMD Tool)

我能够获得单身requires,但我无法获得多个元素来匹配。我开始的正则表达式:http ://regexr.com?36hto

4

1 回答 1

2

像这样?

requires\s*:\s*(?:\[)?\s*(?:(?:'([^']+)')(?:,\s*)?)+\s*(?:\],?)?

http://regexr.com?36huj

编辑

requires\s*:\s*(?:\[)?\s*(?:(?:'(?<inside>[a-zA-Z.]*)')(?:,\s*)?)+\s*(?:\],?)?

这似乎是你想要的命名匹配

于 2013-09-30T22:14:25.780 回答