簡體   English   中英

正則表達式替換特定的控制字符,除了少數特殊情況 C#?

[英]Regex to replace specific control characters except a few special cases C#?

我有以下要求:

我有一個包含控制字符的字符串 str ......我想用一些特定的值替換這些控制字符。 所以我使用以下正則表達式:

str = Regex.Replace(str, @"\p{C}+","\r\n");

上面用\\r\\n 替換所有控制字符。

但是,我想在上面做同樣的事情,但排除以下控制字符:

SPACE , `\u000D`, `\u000A`

我如何修改上面的 RegEx 來實現這一點? 有什么想法嗎? 謝謝!

使用字符類減法

str = Regex.Replace(str, @"[\p{C}-[ \u000D\u000A]]+","\r\n");
                           ^^^^^^^^^^^^^^^^^^^^^^^

[\\p{C}-[ \ \ ]]+模式匹配\\p{C} Unicode 類別中的 1 個或多個字符,空格、 \ \

給你: [^\\P{C}\\r\\n]+

負類[^
負屬性\\P{C} (負類 + 負屬性 = \\p{C}
回車\\r
換行\\n

結果:除 CRLF 之外的所有控制代碼。

(順便說一句:空格與\\p{C}不匹配)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM