[英]c# Regex non letter characters from a string
我的術語可能在此處有點過時,但是我試圖從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字符類刪除字符。 例如,此代碼刪除所有標點符號,符號或控制字符的內容:
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}]", "");
看到它在行動 。
string result = string.Concat(input.Where(c => Char.IsLetterOrDigit(c)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.