gpt4 book ai didi

c# - 操作字符串 : Removing special characters - Change all accented letters to non accented

转载 作者:太空狗 更新时间:2023-10-30 00:12:10 26 4
gpt4 key购买 nike

我正在使用 asp.net 4 和 c#。

我有一个字符串可以包含:

  • 特殊字符,例如:!"£$%&/()/#
  • 重音字母,例如:àòèù
  • 空格,例如:“”(1 个连续或多个),

示例字符串:

#Hi this          is  rèally/ special strìng!!!

我愿意:

a) 删除所有特殊字符,例如:

Hi this          is  rèally special strìng

b) 将所有重音字母转换为非重音字母,例如:

Hi this          is  really special string

c) 删除所有空格并用破折号 (-) 替换主题,例如:

Hi-this-is-really-special-string

我的目标是创建一个适合 URL 路径的字符串,以实现更好的 SEO。

知道如何使用正则表达式或其他技术来做到这一点吗?

感谢您对此的帮助!

最佳答案

类似于 mathieu 的回答,但更多是根据您的要求定制的。该解决方案首先从输入字符串中去除特殊字符和变音符号,然后将空格替换为破折号:

string s = "#Hi this          is  rèally/ special strìng!!!";
string normalized = s.Normalize(NormalizationForm.FormD);


StringBuilder resultBuilder = new StringBuilder();
foreach (var character in normalized)
{
UnicodeCategory category = CharUnicodeInfo.GetUnicodeCategory(character);
if (category == UnicodeCategory.LowercaseLetter
|| category == UnicodeCategory.UppercaseLetter
|| category == UnicodeCategory.SpaceSeparator)
resultBuilder.Append(character);
}
string result = Regex.Replace(resultBuilder.ToString(), @"\s+", "-");

ideone.com 查看它的运行情况.

关于c# - 操作字符串 : Removing special characters - Change all accented letters to non accented,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6992164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com