这是我上一个问题的延续: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种不同的RegEx'es(一种来自Jerry的回答)
要求部分看起来如此:
requires: 'Ext.util.MixedCollection'
或
requires: ['Ext.util.MixedCollection', 'Ext.util.BasicDrag'],
或
requires: [
'Ext.util.MixedCollection',
'Ext.util.BasicDrag'
],
与mixin相同。我能够获得单requires
但我无法获得多个要匹配的元素。我开始使用正则表达式:http://regexr.com?36hto
答案 0 :(得分:2)
喜欢这个吗?
requires\s*:\s*(?:\[)?\s*(?:(?:'([^']+)')(?:,\s*)?)+\s*(?:\],?)?
修改
requires\s*:\s*(?:\[)?\s*(?:(?:'(?<inside>[a-zA-Z.]*)')(?:,\s*)?)+\s*(?:\],?)?
这似乎是你想要的命名匹配