在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)
Jmeter的正则表达式实际类似于Perl5中定义的正则表达式
参考资料
https://deerchao.cn/tutorials/regex/regex.htm
| 匹配或规则,逻辑或运算
量化的元字符
{}大括号匹配重复次数
{n,m} -匹配至少n次,但不大于m次
{n,} -匹配至少n次
{n,} -匹配正好n次
星号* -匹配0次或多次
加号+ -匹配1次或多次
问号? -匹配0次或1次
元字符
点号. -匹配任意一个字符,除了回车键 ,如果要匹配元字符,需要加反斜杠
^ -匹配行开始的空字符串,也表示不在列表范围内的字符,位置符号
$ -匹配行结束的空字符串,位置符号
字符类[abcd]或字符范围[a-z]
特殊反斜杠字符在字符类中有效(除了反引用和边界)
在字符类中代表退格
反斜杠字符
匹配词两边的空字符串,位置符号
B 匹配不是词两边的空字符串,位置符号
A 匹配字符串的起始
匹配字符串的结尾
匹配换行
匹配回车
匹配tab
f 匹配换页
d 匹配数字[0-9]
D 匹配不是数字[^0-9]
w 匹配字母,数字,下划线[0-9a-z_A-Z]
W 匹配不是字母,数字,下划线[^0-9a-z_A-Z]
s 匹配空格符[ f]
S 匹配非空格符[^ f]
xnn 匹配十六进制字符
默认的匹配是贪婪的,也就是尽可能多的去匹配,如果想要最小化匹配,需要在元字符后面使用问号?,比如
*? 匹配0或多次,但尽可能少重复
+? 匹配1或多次,但尽可能少重复
?? 匹配0或1次,但尽可能少重复
{n}? 匹配重复n次,但尽可能少重复
{n,}? 匹配重复至少n次,但尽可能少重复
{n,m}? 匹配重复至少n次,但不大于m次,但尽可能少重复