前后端分离之fiddler前端开发代理 autoresponder 正则表达式 regex:(?insx) 修正符详解
regex:(?isx)^http://127.0.0.1:3000(/dlscene)?/order/(\w*)
http://127.0.0.1:8080/dlscene/order/$2
上面这段正则既可以匹配
http://127.0.0.1::3000/dlscene/order/xx
也可以匹配
http://127.0.0.1::3000/order/xx
实在是非常好用
2018.3.22更新一个自己用的正则
在前端开发中经常会用到的fiddler,来做接口调试。
在使用autoresponder时,其中的正则表达式无疑是最便捷的方式。
其中regex:(?insx)这部分一直让我很疑惑,其中的关键字表示什么意思。
今天花时间查了一下,专门写一写。
REGEX: 表示启用正则表达式,(?insx) 设置正则解释的规则, 忽略大小写等。
括号中这几个应该叫做 “修正符”(php中),
修正符:i 表示不区分大小写的匹配;
修正符:n 表示指定的唯一有效的捕获是显式命名或编号的形式。也就是说如果使用了“n”修正符,想在表达式中使用括号,在下面使用变量接受是收不到的。
例如期望匹配值为:http://127.0.0.1:8020/abba/lyb/lyblist
表达式为:
regex:(?inx)^http://127.0.0.1:\d*/(\w*)/lyb/lyblist
下面如果想用变量接收括号中内容是收不到的。
http://127.0.0.1:8080/$1/lyb/lyblist
这样输出的结果是 “http://127.0.0.1:8080/$1/lyb/lyblist” ,而不是期望的“http://127.0.0.1:8080/abba/lyb/lyblist”
修正符:s 表示将字符串视为单行,换行符作为普通字符;
修正符:x 表示将模式中的空白忽略。
另外还有(当然这是php里面的,博主不保证在fiddler中是否有效 XD ):
//修正符:g表示全局匹配
//修正符:m 将字符串视为多行,不管是那行都能匹配;
//修正符:A 强制从目标字符串开头匹配;
//修正符:D 如果使用$限制结尾字符,则不允许结尾有换行;
//修正符D限制其不可有换行;必需以abc结尾;
//修正符:U 只匹配最近的一个字符串;不重复匹配;