gpt4 book ai didi

c# Regex 字符串中的非字母字符

转载 作者:太空狗 更新时间:2023-10-29 23:15:36 25 4
gpt4 key购买 nike

我的术语在这里可能有点过时,但我正在尝试从 C# 中的字符串中删除非字母,因此删除破折号和符号等,但保留重音字符和汉字等内容。我在 SO 上看到的所有 C# 示例都有这样的正则表达式 new Regex("[^a-zA-Z0-9 -]"); , 但我的需求超出了 ascii 字符。

string input = "I- +AM. 相关 AZURÉE& /30%";

string output = "I AM 相关 AZURÉE 30";

最佳答案

一个好的起点是根据 Unicode character class 删除字符.例如,此代码删除了所有以标点符号、符号或控制字符为特征的内容:

string input = "I- +AM. 相关 AZURÉE& /30%";
var output = Regex.Replace(input, "[\\p{S}\\p{C}\\p{P}]", "");

您也可以尝试白名单方法,只允许某些类。例如,这只保留字母、变音符号、数字和空格的字符:

var output = Regex.Replace(input, "[^\\p{L}\\p{M}\\p{N}\\p{Z}]", "");

See it in action .

关于c# Regex 字符串中的非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17722489/

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