正则表达式入门及常用正则表达式
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
常用正则表达式
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