代码改变世界

正则表达式

2021-05-18 18:29  qgbo  阅读(39)  评论(0编辑  收藏  举报

某些工具生成如下的文件.,文件大小写杂乱,混合/ 空格

public enum xxx

{

person =1,

ComPan=2

Student xiao/hai=3

}

正则表达式处理为合理的方式 针对属性。

 

先把所有 字符换成小写

^.*$

\L$0

把特殊字符换成大写

\t([A-Za-z])| ([A-Za-z])|/([A-Za-z])
\1\U\2\E

加上注释

\t[A-Za-z ]+
/// <summary>\n/// The $0 \n/// </summary>\n $0

这需要3步,前两步是把变量名换为大驼峰。这可以一步实现

(\t([A-Za-z])| ([A-Za-z])|/([A-Za-z]))((?<=\w)\w+) 

\U$2\U$3\U$4\L$5

$1,$2...是表示的小括号里的内容  

可以如下理解,JS执行如下内容。

'/person'.replace(/(\t([A-Za-z])| ([A-Za-z])|\/([A-Za-z]))((?<=\w)\w+)/g,"$0,$1,$2,$3,$4,$5,$6");

' person'.replace(/(\t([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:(\t([A-Za-z])| ([A-Za-z])|\/([A-Za-z])) 的匹配值,这个意思是 以 \t, 空格,/ 后面跟一个字母匹配的值, 这里是空格,所以值是 ” p“

$2: 上面的规则里面的小括号,从右向左读,这里是/, 所以值是空

$3: 上面的规则里面的小括号,从右向左读,这里是空格,所以值是 ”p“

$4: 上面的规则里面的小括号,从右向左读,这里是\t, 所以值是空

$5: ((?<=\w)\w+) 这个意思是正向否定查找, 第一个是字母(\w),这里匹配的是 "erson"