C# 将字符串中的``替换为`-`
在特定情况下,我必须将邮件id中的C# 将字符串中的``替换为`-`,c#,C#,在特定情况下,我必须将邮件id中的\uu替换为-,尝试使用索引方法,但没有获得正确的标识 下面是实际情况 Mail id : abc@bc_cd_fd@gmail.com ( It's wrong as per my requiremnt) 我想用下面的格式替换它 Required format :abc@bc-cd-fd@gmail.com 按以下格式尝试 string correctString = errString.Replace("_", "-"); 但我必须在@之后做这件事
\uu
替换为-
,尝试使用索引方法,但没有获得正确的标识
下面是实际情况
Mail id : abc@bc_cd_fd@gmail.com ( It's wrong as per my requiremnt)
我想用下面的格式替换它
Required format :abc@bc-cd-fd@gmail.com
按以下格式尝试
string correctString = errString.Replace("_", "-");
但我必须在@之后做这件事
提前感谢您的及时帮助。如果要替换“@”符号后的文本,首先需要隔离字符串的该部分。您可以通过使用
Split
方法将字符串拆分为两部分来实现这一点,即“@”符号之前的部分和之后的部分,并仅在第二部分上运行replace:
public string FixEmail(String email) {
var parts = email.Split('@');
return parts[0] + "@" + parts[1].Replace("_", "-");
}
// ... snip ...
FixEmail("ab-c_d@12_34.com").Dump();
如果您的电子邮件中有多个“@”符号,您可以尝试仅在最后一部分运行替换,并将第一部分连接在一起:
public string FixEmail(String email) {
var parts = email.Split('@');
parts[parts.Length - 1] = parts[parts.Length - 1].Replace("_", "-");
return String.Join("@", parts);
}
一些索引linq将使其快速且简单:
var result = string.Join("@", "aaa_a@_a_".Split('@').ToList().
Select((s, i) => i > 0 ? s.Replace('_', '-') : s).
ToArray());
//returns aaa_a@-a-
找到
@
后面的部分(使用String.Split
或IndexOf
)并执行同样的操作您可以拆分字符串。或者你可以使用正则表达式。在我这边试过,效果很好…@JackFrost这只是因为他的例子除了@符号后没有下划线。@ChrisFarmer-Oh。我懂了。我现在明白了。嗯,他找到了他的答案。它可能有比2更多的部分:我正在使用2.0,LinQ我在这里不能使用,但是谢谢你的回复,我也会尝试这个。