+在Visual Studio 2015搜索中忽略非贪婪的说明符?

时间:2019-11-01 22:01:41

标签: regex visual-studio

我打算在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

请注意,这里的目的是要理解为什么该表达式不执行我认为应该做的事情,而不是达到代码重构的初衷,因此,提出一个完全不同的正则表达式是没有好处的表达达到相同的效果。

0 个答案:

没有答案