我有这样的字符串:
/api/agencies/{AgencyGuid}/contacts/{ContactGuid}
我需要将文本更改{ }
为 cameCase
/api/agencies/{agencyGuid}/contacts/{contactGuid}
我怎样才能做到这一点?最好的方法是什么?请帮忙
我没有使用正则表达式的经验。所以,到目前为止我已经尝试过:
string str1 = "/api/agencies/{AgencyGuid}/contacts/{ContactGuid}";
string str3 = "";
int i = 0;
while(i < str1.Length)
{
if (str1[i] == '{')
{
str3 += "{" + char.ToLower(str1[i + 1]);
i = i + 2;
} else
{
str3 += str1[i];
i++;
}
}
你当然可以用正则表达式来做到这一点。
但是你也可以像这样使用 LINQ 来做到这一点:
var result = String.Join("/{",
str1.Split(new string[1] { "/{" }, StringSplitOptions.RemoveEmptyEntries)
.Select(k => k = !k.StartsWith("/") ? Char.ToLowerInvariant(k[0]) + k.Substring(1) : k));
这里所做的是: 拆分为 3 部分: "/api/agencies/" "AgencyGuid}/contactpersons" "ContactPersonGuid}" 之后我们从每个元素中选择这样的值:"如果你以 "/" 开头,这意味着你是第一个元素。如果是这样 - 你应该在没有篡改的情况下返回。否则:取第一个字符(k [0])将其更改为小写( Char.ToLowerInvariant() )并与其余部分连接。
最后加入这三个(一个不变,两个改变)字符串
使用正则表达式,您可以这样做:
var regex = new Regex(@"\/{(\w)");
var result = regex.Replace(str1, m => m.ToString().ToLower());
在正则表达式中,我们搜索模式“/{\w”,意思是找到“/{”和一个字母 (\w)。这个字符将被纳入一个组(因为 () 周围),然后运行 Regex 并将该组替换为 m.ToString().ToLower()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句