正则表达式使用regexr而不是Visual Studio

时间:2014-10-24 20:48:27

标签: regex

我正在编写我的第一个Regex替换字符串。我正在使用:http://www.regexr.com/来测试我的正则表达式。

我的目标是找到所有不从其他类继承的类。例如:

查找

class Test
{

}

找不到

class Test : AnotherClass
{

}

也找不到

class Test;

我使用以下Regex

进行了管理
(class [^\s]+)\s{

我想在visual studio中找到所有这些字符串并替换为:

$1 : NewObject

导致:

class Test : NewObject;

问题是虽然此代码在http://www.regexr.com/上运行,但它不能在Visual Studio中运行。

我之前尝试的旧版本有效:

((?!.*:)class [^\n]+)\s{

但问题是它在下一行插入:如下:

class Test
: NewObject

我的正则表达式可能有什么问题,它在Visual Studio中不起作用?或者也许新的正则表达式会做我需要的东西?

1 个答案:

答案 0 :(得分:1)

由于某些原因,Visual Studio似乎没有在\s中包含换行符。

作为一种解决方法,这里有一个可行的模式:

(class\s+\w+)([\s\r\n]*\{)

将其替换为:

$1 : NewObject$2

如果您需要泛型支持,请改用:

(class\s+[\w\s<>]+?)([\s\r\n]*\{)