正则表达式问题Visual Studio
本文关键字:Studio Visual 问题 正则表达式 | 更新日期: 2023-09-27 17:57:55
我想替换C#代码中对资源文件的所有引用。
一个例子是一个包含多个引用的页面,例如:
Resources.Global.Firstname
Resources.Global.Surname
我希望正则表达式能找到所有这些(它们可以以;
或)
结尾)。
完全是正则表达式的初学者,所以这里的任何建议都将不胜感激。
您只需在Visual Studio中使用"查找和替换"窗口。
- 按Ctrl-H打开窗口
- 将
Resources'.Global'.{[^,) ;]+}
放入"查找内容:"文本框中 - 将
GetStringValue("'1")
放在"替换为:"文本框中 - 确保"查找范围:"下拉列表设置为要搜索的范围
- 展开"查找选项"子面板
- 选中"使用:"旁边的框,并确保已选中"正则表达式"
这是在做什么:
第一个正则表达式将查找以Resources.Global.
开头的任何内容,并捕获其后的内容,直到找到空格、逗号、闭合括号或分号为止。
第二个将找到的整个文本替换为GetStringValue("")
,并将捕获的文本放在括号中的引号内。
为什么不直接使用CTRL+H(快速查找和替换)并根据实际术语而不是regex模式进行搜索?您试图将从和重命名为什么?
更新匹配的模式类似于:Resources.Global.([^};]+)
替换模式为GetStringValue("''1")
正则表达式:
(Resources'.Global'.[A-Z][a-zA-Z]*[;')])
将只找到以下测试线路中的最后两条线路:
Resources.Global.Firstname
Resources.Global.Surname
Resources.Global.Firstname;
Resources.Global.Surname)
用于验证的代码:
Regex regex = new Regex(@"(Resources'.Global'.[A-Z][a-zA-Z]*[;')])");
MatchCollection mc = regex.Matches("Resources.Global.Firstname'n" +
"Resources.Global.Surname" +
"Resources.Global.Firstname;" +
"Resources.Global.Surname)");
foreach (Match match in mc)
{
Console.WriteLine(match.Groups[1].ToString());
}
这个软件可能会帮助你:
Rad软件正则表达式设计器