正则表达式

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

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"

气功波(18037675651)
原文地址:https://www.cnblogs.com/qgbo/p/14782177.html