除xxx之外的正则表达式匹配行

时间:2015-11-12 01:13:35

标签: regex

这是我的数据:

public System.Collections.Generic.List<MyItem> MyItemGroupList() {
        return base.Channel.MyItemGroupList();
}

public System.Threading.Tasks.Task<MyItem> MyItemGroupListAsync(){
        return base.Channel.MyItemGroupListAsync();
}

public OtherItem OtherItemByParam(string param) {
        return base.Channel.OtherItemByParam(param);
}

这是我的正则表达式:

/(?<=return base\.Channel\.)(.*?)(?=\(.*\);)/g
MATCH 1
1.  [102-117]   `MyItemGroupList`
MATCH 2
1.  [242-262]   `MyItemGroupListAsync`
MATCH 3
1.  [370-386]   `OtherItemByParam`

但我不想在名称中使用Async匹配任何函数。 我无法让它发挥作用。

我尝试插入(?!Async),但却无法获得它。

1 个答案:

答案 0 :(得分:1)

你需要使用负前瞻断言。

(?<=\breturn base\.Channel\.)(?![^()]*Async)\w+

(?![^()]*Async)声明要匹配的字符串在Async到达之前不会包含(

DEMO