首先了解一下常用正则表达式的语法
\d 数字
\w 数字或者字母
. 可以匹配任意字符
星号* 表示任意个字符
+ 表示至少一个字符
? 表示0或者1个字符
{n} 表示n个字符
{n,m} 表示n-m个字符
\s 表示空白符
括号[] 表示范围,比如:
[0-9a-zA-Z\_] 可以匹配一个数字、字母或者下划线
^ 表示行的开头,^\d表示必须以数字开头。
$ 表示行的结束,\d$表示必须以数字结束。
A|B 可以匹配A或B,如(P|p)ython可以匹配'Python'或者'python'
() 表示的就是要提取的分组(Group),如
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
此篇博客针对的是有些接口测试需要的参数值是由多个正则表达式提取的值的组合
示例:
首先先分别提取两个值,引用名称由自己命名且不能重复,()里面即我们提取的值,正则表达式根据实际需要填写
模板表示取第几个值,$-1$表示取所有值,$0$表示随机取值,$1$表示取第一个值,$2$表示取第二个值
匹配数字: 0表示随机取值, 1代表全部取值
缺省值:如果正则表达式取不到值,则使用此缺省值
如图所示,${}引用上面提取的两个值,组合成为我们需要的参数值
实例:
package com.wzq.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularEX_Test {
// 匹配的网址
public String uri = null;
public String regex = new String("com>(.*?)");
public String getRegex() {
return regex;
}
public void setRegex(String regex) {
this.regex = regex;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public static void main(String[] args) {
RegularEX_Test regex_test = new RegularEX_Test();
regex_test.setUri(
"
企业推广 | 搜索风云榜 | 关于百度 | About Baidu
©2008 Baidu 使用百度前必读 京ICP证03xxxx号