使用正则表达式在文件中查找匹配的单词

时间:2013-09-30 21:21:05

标签: c# regex winforms

这是我上一个问题的延续: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相同。
这背后的想法是获取所有依赖项并构建自定义缩小的JS文件(我知道Sencha CMD工具)

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

1 个答案:

答案 0 :(得分:2)

喜欢这个吗?

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

http://regexr.com?36huj

修改

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

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