簡體   English   中英

如何用正則表達式用小寫字母替換大寫字母?

[英]How to replace upper case with lower case using regex?

我需要用小寫字母替換變量名中的大寫字母並添加空格

例如:

NotImplementedException應該是Not implemented exception UnhandledException應該是Unhandled exception

由於您沒有指定語言,我將在C#中給出一個示例。 我相信你的語言會提供類似的東西。

String s = "NotImplementedException";
s = Regex.Replace(s, @"\B[A-Z]", m => " " + m.ToString().ToLower());
// s = "Not implemented exception"

它可以使用單個命令在sed中完成:

$ echo "NotImplementedException" | sed 's/\B[A-Z]/ \l&/g'
Not implemented exception

但是在不同語言的Regex實現中,對\\l (和\\u\u003c/code> , \\L\\U\\E )的支持很少。 我只確定Perl實現了這一點。

@Ignacio,我不同意。 當然,這不是可以在一個帶有普通正則表達式的語句中完成的事情。 但是sed命令:

sed -e 's/\([a-zA-Z]\)C/\1 c/g' infile.txt

當'C'前面有一個字母時,將用'c'替換所有出現的'C'。 所有OP要做的就是制作26種變體,這可能是單調乏味的。 獲得改變案例的條件可能也很困難,但使用正則表達式進行全局搜索和替換總是如此。

暫無
暫無

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

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