C# 正则表达式替换值,包括新行

C# 正则表达式替换值,包括新行,c#,regex,C#,Regex,我有一个类似下面的片段 string bodyTypeAssemblyQualifiedName = "XXX.XX.XI.CustomerPayment.Schemas.r1.CustomerPayments_v01, XXX.XX.XI.CustomerPaym" + "ent.Schemas.r1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ac564f277cd4488" +

我有一个类似下面的片段

string bodyTypeAssemblyQualifiedName = "XXX.XX.XI.CustomerPayment.Schemas.r1.CustomerPayments_v01, XXX.XX.XI.CustomerPaym" +
                "ent.Schemas.r1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ac564f277cd4488" +
                "e";
我想在C#中使用正则表达式来实现:

string bodyTypeAssemblyQualifiedName = null;
我试过使用下面这样的正则表达式,但它与换行符不匹配

bodyTypeAssemblyQualifiedName\s=\s(?<location>.*?);
bodyTypeAssemblyQualifiedName\s=\s(?.*?);
您可以试试

bodyTypeAssemblyQualifiedName\s=\s(?<location>[.\n]*?);
bodyTypeAssemblyQualifiedName\s=\s(?[.\n]*?);
或者为您的模式设置
RegexOptions.Singleline

RegexOptions.Singleline-指定单线模式。更改点(.)的含义,使其匹配每个字符(而不是除\n之外的每个字符)

这项工作:


(?@Will,通过用否定字符类替换点,您消除了对单行修饰符的需要。如果我正确理解了问题,您也不需要使用lookarounds

bodyTypeAssemblyQualifiedName\s+=\s+(?<location>[^;]+);
bodyTypeAssemblyQualifiedName\s+=\s+(?[^;]+);

My regex不要求您使用除regex.Replace(输入、模式、替换)之外的任何代码。