[英]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.