我需要在 c# 中为类添加一个接口,如果已经声明,则需要匹配:
public partial class Client
需要是
public partial class Client: IEntity
当事件已经存在时
public partial class Client: IEntity
必须留下
我已经将这个“公共部分类 (\w+)”变成了“公共部分类 $1: IEntity”
谢谢。
我需要在 c# 中为类添加一个接口,如果已经声明,则需要匹配:
public partial class Client
需要是
public partial class Client: IEntity
当事件已经存在时
public partial class Client: IEntity
必须留下
我已经将这个“公共部分类 (\w+)”变成了“公共部分类 $1: IEntity”
谢谢。
看来你正在寻找这样的东西
(get-content test.cs -raw) -replace 'public partial class (\w+)(:.*)?$','public partial class $1: IEntity'
如果您只想处理特定类型的格式(即“public partial class 'classname'”)。这样的事情会做到这一点:
class Program
{
static readonly Regex re = new Regex( @"^public partial class[^:]+$", RegexOptions.Compiled );
static string Replacement( string stringToReplace )
{
return re.Replace( stringToReplace, match => match.Value + ": IEntity" );
}
static void Main()
{
string newString = Replacement( "public partial class Client" );
Console.WriteLine( newString ); //output: "public partial class Client: IEntity"
newString = Replacement( "public partial class Server" );
Console.WriteLine( newString ); //output: "public partial class Server: IEntity"
newString = Replacement( "public partial class Server: IEntity" );
Console.WriteLine( newString ); //output: "public partial class Server: IEntity"
}
}
在哪里:
我想说直接的正则表达式是一种危险的方法。
如果你有:
public partial class Client: RichClient
最好不要添加额外的:IEntity
如果可能的话,您可以获取完整的行文本,然后编写一个函数来确定要做什么。
跨越多行会不会有问题?