<1.运用场景,契约文档到实体类转变>
某公司有一份契约,如下
开发人员需要根据契约写出对应的实体类,当参数较多是,所开发的时间就比较多,这时候我们可以通过notepad++,用正则表达式进行替换
操作步骤
①复制契约具体参数到notepad++
②写一个正则表达式,使之可以匹配到任意一行
(?i)(?s)^([a-z]+)\s+\[?([a-z0-9\<\>\!]+)\]?\s+(.*?)$
快捷键CTR+F ,弹出Replace窗口 ,在Find what 输入正则表达式,测试一下如图
③假如我们要替换这种格式,如图
写一个要替换后的正则表达式:
/** \3 */\r\nprivate \2 \1;
在 replace with 输入要替换的正则表达式,测试一下
只需要把替换后内容复制粘贴到新建的类文件就可以了,就不用自己一个个手写了,当契约较多的时候就会节省很多开发时间,而且参数不会写错。
效果展示完,接下来就来了解一下正则表达式吧
<2.了解正则表达式>
定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
语法:
?i : 匹配时不区分大小写
?s : 单行模式,表示更改.的含义,使它与每一个字符匹配(包括换行 符\n)
?m : 多行模式,表示更改^和$的 含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的 精确含意是:匹配\n之前的位置以及字符串结束前的位置.)
^ : 一行的开始
$ : 一行的结束
. : 任意字符类
[abc] : 包含a、b和c的任何字符(tong a|b|c)
[^abc]: 除a、b和c的任何字符
\s : 空白符
\S : 非空白符
\d : 数字[0-9]
\D : 非数字[^0-9]
\w : 词字符[a-zA-Z0-9]
\W : 非次字符
1 贪婪型 勉强型 占有型 如何匹配
2 X? X?? X?+ 一个或零个X
3 X* X*? X*+ 零个或多个X
4 X+ X+? X++ 一个或多个X
5 X{n} X{n}? X{n}+ 恰好n次X
6 X{n,} X{n,}? X{n,}+ 至少n次X
7 X{n,m} X{n,m}? X{n,m}+ X至少n次,且不超过m次
解析:
(?i)(?s)^([a-z]+)\s+\[?([a-z0-9\<\>]+)\]?\s+(.*?)$
(?i) 不区分大小写
(?s) 当行模式
^ 一行开始
([a-z]+) 一个或多个英文字符,第一个小括号表示第一个组 \1
\s+ 一个或多个空格
\[? 0个或者一个[
([a-z0-9\<\>]+) :一个或者多个字母数字,尖括号 \2
\]? 0个或1个]
\s+ 一个或多个空格
(.*?) 勉强型0个或多个任意字符 \3
/** \3 */\r\nprivate \2 \1;
\r :换行