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