我正在编写我的第一个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中不起作用?或者也许新的正则表达式会做我需要的东西?
答案 0 :(得分:1)
由于某些原因,Visual Studio似乎没有在\s
中包含换行符。
作为一种解决方法,这里有一个可行的模式:
(class\s+\w+)([\s\r\n]*\{)
将其替换为:
$1 : NewObject$2
如果您需要泛型支持,请改用:
(class\s+[\w\s<>]+?)([\s\r\n]*\{)