首页 > 解决方案 > 更改字符串中的特殊字符

问题描述

我正在使用 c# 并且在 appsettings.json 的代码中,如果存在特殊字符,我会获取字符串并转换它们。这是我的代码

int? a = applicationRequestViewModel.GetApplicantIndex();
int? g = applicationRequestViewModel.GetGurantorIndex();

foreach (var keys in _options.Value.RegisterParamKeys)
{
    string value = keys.Split(";")[0];
    string name = keys.Split(";")[1];
    string key = value.Split(":")[typeOfApplicant];
    key = Regex.Replace(key, @"[^\[a\]]", "[" + a + "]");
    key = Regex.Replace(key, @"[^\[g\]]", "[" + g + "]");
    var registrationProperty = new RegistrationProperty() { };
    registrationProperty.Name = name;
    registrationProperty.Value = (string)rss.SelectToken(key);
    listOfRegistrationProperty.Add(registrationProperty);
}

从 appsettings.json 我拿了下面的字符串

"RegisterBatchParams": [
    "applicationInfo.applicationNumber:applicationInfo.applicationNumber:applicationInfo.applicationNumber:applicationInfo.applicationNumber;applicationNumber",
    "applicationInfo.applicantType:applicationInfo.applicantType:applicationInfo.applicantType:applicationInfo.applicantType;applicantType",
    "applicationInfo.customerSegment:applicationInfo.customerSegment:applicationInfo.customerSegment:applicationInfo.customerSegment;customerSegment",
    "applicationInfo.applicationStatusLocalText:applicationInfo.applicationStatusLocalText:applicationInfo.applicationStatusLocalText:applicationInfo.applicationStatusLocalText;applicationStatus",
    "applicationRequestViewModel.applicants[a].businessPartner.person.firstName:applicationRequestViewModel.applicants[a].businessPartner.person.firstName:applicationRequestViewModel.applicants[a].businessPartner.person.firstName:applicationRequestViewModel.applicants[a].businessPartner.person.firstName;customerName"
  ],

对于我想"applicants[a]"用索引号更改为的最后一个字符串,但它没有按预期转换如何正确转换?

正如预期的结果

applicationRequestViewModel.applicants[0].businessPartner.person.firstName

但给出的结果

a[0][0][0][0][0]a[0][0][0][0][0][0][0][0][0]a[0][0][0][0][0]a[0][0][0][0][0][0][0][0][0][0]

标签: c#regex

解决方案


而不是@"[^\[a\]]"使用@"\[a\]".

但是你甚至不需要正则表达式。简单string.Replace也可以完成这项工作。


推荐阅读