我正在尝试使用正则表达式从下面的文本中获取RaisePropertyChanged(DominSelectors)
。
base.RaisePropertyChanged<IEnumerable<DominSearcherViewModel>>(Expression.Lambda<Func<IEnumerable<DominSearcherViewModel>>>(Expression.Property(Expression.Constant(this, typeof(TestViewModel)), (MethodInfo)MethodBase.GetMethodFromHandle(typeof(TestViewModel).GetMethod("get_DominSelectors").MethodHandle)), new ParameterExpression[0]));
我试过下面的正则表达式,但我得不到正确的结果: -
.*?(RaisePropertyChanged).*?\\(.*?\\(.*?\\(.*?\\(.*?\\(.*?\\(.*?\\(.*?\\(.*?(\\().*?(DominSelectors).*?\\).*?\\).*?\\).*?\\).*?(\\))(;)
错误的结果: - RaisePropertyChanged("get_DominSelectors");
正确的结果: - RaisePropertyChanged(DominSelectors);
编辑:get_DominSelectors不是修复词我可以以get_ABC,get_Xyz开头的任何单词。我只想要ABC和Xyz。
答案 0 :(得分:2)
试试这个:
\w*(RaisePropertyChanged).*(?:get_)(\w+(?="\))).*;
捕获组1:RaisePropertyChanged
在whatever_word_string
之后和get_
")
答案 1 :(得分:1)
查找
B01002e2_max B01002e3_max B01002e2_mean B01002e3_mean B01002e2_min B01002e3_min
1 40.8 49.8 38.46 38.71667 35.5 23.9
替换:
.*(RaisePropertyChanged).*((?<=get_)\w+(?="\))).*;
演示:https://regex101.com/r/EgXlcD/14
正则表达式:
\1(\2);
- 匹配任何字符的0或更多
.*
- (?<=get_)
get_
- 正面展望(?="\))