我打算在C#项目中替换所有出现这种形式的内容
([variable] as [type]).[method]
由于这个原因,我正在尝试创建一个正则表达式,该表达式与第一个括号之间的点匹配,直到点为止。
例如在这一行:
requestText.Append(CreateTableRow(currentLabelText, (currentControl as TextBox).Text));
它应该匹配
(currentControl as TextBox).
我希望这可以工作
\((.+?) as (.+?)\)\.
但是由于某种原因,它匹配了3次,每次都从每个括号括起来,而所有括号都以点结束。
具有指定的非贪婪匹配项,这不应该仅匹配最短的匹配项吗? 显然regexr.com会同意我的看法。
以下是Microsoft的文档,以供参考。 https://docs.microsoft.com/en-us/visualstudio/ide/using-regular-expressions-in-visual-studio?view=vs-2015&redirectedfrom=MSDN
请注意,这里的目的是要理解为什么该表达式不执行我认为应该做的事情,而不是达到代码重构的初衷,因此,提出一个完全不同的正则表达式是没有好处的表达达到相同的效果。