用于在大.cs文件中查找事件处理程序的正则表达式
本文关键字:事件处理 程序 正则表达式 查找 cs 文件 用于 | 更新日期: 2023-09-27 18:32:57
(VS2012 C#) 我有一个没有区域和结构的大.cs文件。使用"查找和替换"工具,我想找出所有事件处理程序,例如:button_Click、window_Loaded等。所以它的格式:text1_text2,文本 1 和文本 2 必须存在(最小长度为 1),并用下划线 _ 分隔。正则表达式如何?
提前谢谢你。
马格PS:到目前为止,我从未使用过"强大的"正则表达式,因为我不需要它,但现在是时候使用它了。当然,在我在这里询问之前,我已经尝试阅读vs2012的在线帮助并尝试了很多次,但失败了。
试试这个正则表达式:
([a-z_]'w*)_([a-z'd]+)
比赛:
Some_Button1_Click
Button1_Click
Some_strange_Button1_Click
示例代码:
const string strRegex = @"([a-z_]'w*)_([a-z'd]+)";
const RegexOptions myRegexOptions = RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string text = @"Some_Button1_Click";
var matches = myRegex.Matches(text)
.Cast<Match>()
.Select(x => new {
AllText = x.Groups[0], // all text ==> "Some_Button1_Click"
Object = x.Groups[1], // ([a-z_]'w*) ==> "Some_Button1"
Event = x.Groups[2] // ([a-z'd]+) ==> "Click"
})
.ToList();
你的意思是像
[a-zA-Z0-9]+_[a-zA-Z]+
但是,如果生成了事件处理程序,也可以搜索object sender
和EventArgs e
。
Sub {[A-Za-z0-9]+}'_{[A-Za-z0-9]+}
请记住,如果您在 Visual Studio 中使用正则表达式并且还需要替换函数,则需要这些大括号。替换文本中的术语 '1
、'2
将引用由查找文本中的大括号标识的相应捕获组。
(?i)[a-z0-9]+'_[a-z]+
这应该有效,它会找到一个字母 1 次或更多次[a-z]+
然后是下划线'_
然后再次[a-z]+
. (?i)
使其不区分大小写,因此无论是否大写,都会发现字母。