我需要将变量名中的大写字母替换为小写字母并添加空格
例如:
NotImplementedException
应该变为 Not implemented exception
UnhandledException
应该变为 Unhandled exception
我需要将变量名中的大写字母替换为小写字母并添加空格
例如:
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"
String s = "NotImplementedException"; s = Regex.Replace(s, @"\B\p{Lu}", m => " " + m.ToString().ToLower());
- A. M.可以使用单个sed命令完成:
$ echo "NotImplementedException" | sed 's/\B[A-Z]/ \l&/g'
Not implemented exception
\l
(以及\u
、\L
、\U
和\E
)的支持很少见。我只确定 Perl 已经实现了这个功能。echo "NotImplementedException" | perl -pe 's/(\B[A-Z])/ \l$1/g'
- Dewi Morgan@Ignacio,我不同意。当然,这不是可以用普通正则表达式一条语句完成的事情。但是sed命令:
sed -e 's/\([a-zA-Z]\)C/\1 c/g' infile.txt
当“C”紧跟在一个字母之后时,将替换所有出现的“C”为“ c”。 所有OP需要做的就是制作26个变体,这可能是繁琐的。 而且很难确定更改大小写的条件,但对于全局搜索和替换使用正则表达式总是如此。