我正在处理许多代码行的替换。 我需要做的是根据各种条件替换特定的字符串。 这是字符串:
private IWebElement UserList_Link { get; set; }
我需要用不同的字符串替换{ get; set; }
,例如=something
显然,进入搜索{ get; set; }
并替换所有内容。但是我只需要包含private IWebElement
的行。
因此最终的字符串应如下所示:
private IWebElement UserList_Link = element;
我尝试过这样的正则表达式,但它在花括号之前是个好主意:
(?<= IWebElement \ w)(。*)
我不确定该怎么做。你能帮我一个人吗?
答案 0 :(得分:0)
您可以使用正向超前
^(?=private IWebElement.*)(.*){ get; set; }$
^
-字符串的开头(?=private IWebElement.*)
-使private IWebElement
必须匹配的正向前进(.*)
-匹配除换行(捕获的组)以外的所有内容$
-字符串结尾答案 1 :(得分:0)
使用以下View4
:
regex
(private IWebElement.*?) ({ get; set; })
string str = "private IWebElement UserList_Link { get; set; }";
str = Regex.Replace(str, @"(private IWebElement.*?) ({ get; set; })", "$1 = element");
Console.WriteLine(str);
表示正则表达式匹配的第一组。
答案 2 :(得分:0)
在Visual Studio 2017搜索和替换对话框中,您可以使用
查找:(?<=IWebElement\s+\w+\s+){[^{}]*}
替换:= element
在这里,(?<=IWebElement\s+\w+\s+)
是正向查找,它与字符串中紧跟IWebElement
,1+空格,1 +字符字符,1 +空格的位置匹配。它具有可变的宽度,可与有限的正则表达式引擎一起使用。然后,{[^{}]*}
匹配并消耗{
,除了{
和}
之外的0个或更多字符,然后是}
。
您也可以使用更常见的正则表达式,而不会在后面留有可变宽度:
查找:(IWebElement\s+\w+\s+){[^{}]*}
替换:$1= element
请参见this regex demo。
Regulex图:
在这里,(IWebElement\s+\w+\s+)
是ID = 1的捕获组,您可以在替换模式中使用$1
反向引用来引用其内容。如果您在$1
之后输入数字,请使用${1}
明确的格式。