这是我的数据:
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)
,但却无法获得它。
答案 0 :(得分:1)
你需要使用负前瞻断言。
(?<=\breturn base\.Channel\.)(?![^()]*Async)\w+
(?![^()]*Async)
声明要匹配的字符串在Async
到达之前不会包含(
。