某些工具生成如下的文件.,文件大小写杂乱,混合/ 空格
public enum xxx
{
person =1,
ComPan=2
Student xiao/hai=3
}
正则表达式处理为合理的方式 针对属性。
先把所有 字符换成小写
^.*$
L$0
把特殊字符换成大写
([A-Za-z])| ([A-Za-z])|/([A-Za-z])
1U2E
加上注释
[A-Za-z ]+
/// <summary>
/// The $0
/// </summary>
$0
这需要3步,前两步是把变量名换为大驼峰。这可以一步实现
( ([A-Za-z])| ([A-Za-z])|/([A-Za-z]))((?<=w)w+)
U$2U$3U$4L$5
$1,$2...是表示的小括号里的内容
可以如下理解,JS执行如下内容。
'/person'.replace(/( ([A-Za-z])| ([A-Za-z])|/([A-Za-z]))((?<=w)w+)/g,"$0,$1,$2,$3,$4,$5,$6");
' person'.replace(/( ([A-Za-z])| ([A-Za-z])|/([A-Za-z]))((?<=w)w+)/g,"$0, 1=$1, 2=$2, 3=$3, 4=$4, 5=$5, 6=$6, 7=$7");
"$0, 1= p, 2=, 3=p, 4=, 5=erson, 6=$6, 7=$7"
$0:没有小括号的匹配值。这里有小括号,就是原意
$1:( ([A-Za-z])| ([A-Za-z])|/([A-Za-z])) 的匹配值,这个意思是 以 , 空格,/ 后面跟一个字母匹配的值, 这里是空格,所以值是 ” p“
$2: 上面的规则里面的小括号,从右向左读,这里是/, 所以值是空
$3: 上面的规则里面的小括号,从右向左读,这里是空格,所以值是 ”p“
$4: 上面的规则里面的小括号,从右向左读,这里是 , 所以值是空
$5: ((?<=w)w+) 这个意思是正向否定查找, 第一个是字母(w),这里匹配的是 "erson"