常用正则表达式
1 正则表达式的基础概念
1.1 预定义字符
. 表示任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字字符:[^0-9]
\s 空白字符:[\t\n\xoB\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]就是包括a-z,A-Z,0-9,下划线。
1.2 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或者多次
X{n} X,恰好n次
X{n,} X,至少n次
X{n,m} X,至少n次,但是不超过m次
1.3 范围词
[abc] a,b或者c
[^abc] 任何字符,除了a,b或c
[a-zA-Z] a到z或A-Z,两头的字母包括在内(范围)
[a-dm-p] a到d或者m到p
注意:范围词里不管内容有多长,没有数量词的配合都只能匹配一个字符而已。
1、匹配中文:[\u4e00-\u9fa5]
2、英文字母:[a-zA-Z]
3、数字:[0-9]
1.4 正则表达式之分组匹配及反向引用
如果正则的内容需要被复用,那么需要对正则的内容进行分组。分组的目的就是为了提高正则的复用性。组号不能自己指定,组号从1开始。
分组嵌套关系说明:((A)(B©)):一共四组,1号组是((A)(B©)),2号组是(A),3号组为(B©),4号组©.\1:引用第一组所匹配到的内容。这样的话嵌套关系就很容易看见了。
\1或$1 用于匹配第一个分组中的内容
\2或$2 用于匹配第一个分组中的内容
…
\9或$9 用于匹配第一个分组中的内容
一般情况下我们匹配任意两个相同的字符就可以用\1或者$1等来引用比如字符串"AA Am 99",现在要匹配出重复的字符,用这个(\w)\1正则表达式就可以,匹配结果:“AA”, “99”
说明:(\w)用来匹配任何除了换行和制表符的字符, 而\1是对(\w)的一个引用, 所以你可以理解成: (\w)\1 就是(\w)(\w)但是,(\w)\1 和 (\w)(\w)的不同之处在于, (\w)(\w)表示任意两个连续的字符, 比如Ac, MM, K9, 都可以,但(\w)\1只能是AA, CC, 99 这样连续相同的字符所以, 你可以这样理解, \1 是对(\w)的一个实例化引用, 当(\w) 匹配到A时, \1 被表达成A, 当(\w)匹配9时, \1 被表示成9。
①行尾($)或行首(^)添加统一字符
- 行尾统一添加
,
【$ - ,】
打开notepad++或其他支持正则的文本编辑器
ctrl+F,打开窗口,搜索栏输入$
,替换栏输入,
- 行首统一添加
"
查找目标: ^
替换为: "
②将request的负载转为json(部分)
有时候我们在通过f12查看网络请求时,需要快速拿到前端负载,然后模拟请求,进行debug
该方法只支持下图格式
- 通过java工具类添加
,
更换str即可,拿到转换好的str之后,手动删除多余的逗号,然后用notepad++或其他支持正则的记事本打开
public class Load2JsonUtils {
public static void main(String[] args) {
String str = "clientCheckWord\n" +
": \n" +
"\"111\"\n" +
"clientCode\n" +
": \n" +
"\"111\"\n" +
"clientNetWorkId\n" +
": \n" +
"\"\"\n" +
"consignmentPricingMethod\n" +
": \n" +
"0\n" +
"consignmentPricingModel\n" +
": \n" +
"\"1\"\n" +
"id\n" +
": \n" +
"\"89c1075008e34b02b351307e769111a0\"\n" +
"logisticsCompanyId\n" +
": \n" +
"\"01492658-6f22-404f-9bac-69461d63a288\"\n" +
"monthlyCard\n" +
": \n" +
"\"\"\n" +
"monthlyMethod\n" +
": \n" +
"0";
String res = load2Json(str);
System.out.println(res);
}
public static String load2Json(String data){
String[] split = data.split("\n");
StringBuilder res = new StringBuilder();
for (int i = 0; i < split.length;) {
res.append(split[i++]);
res.append(split[i++]);
res.append(split[i++]);
res.append(",");
}
return res.toString();
}
}
-
通过正则,给
:
前面添加引号 -
通过正则,给
,
后面添加引号
-
给行首添加引号(可直接手动添加)
-
手动前后加上
{}
,复制到postman或其他json美化工具
-
点击beautify,查看效果
参考:https://blog.csdn.net/u014552678/article/details/73466175