发布时间:2025-12-09 14:11:51 浏览次数:4
可以看到此模块定义了4个属性和12个函数,我们依次来讲解
# 匹配http://或https://absolute_http_url_regexp = re.compile(r"^https?://", re.I)# 使用$$转义$符号dolloar_regex_compile = re.compile(r"$$")# 变量符号, e.g. ${var} or $varvariable_regex_compile = re.compile(r"$\{(\w+)\}|$(\w+)")# 函数符号, e.g. ${func1($var_1, $var_3)}function_regex_compile = re.compile(r"$\{(\w+)\(([$\w\.\-/\s=,]*)\)\}")作用:将字符串转换为数字
"123" => 123"12.2" => 12.3"abc" => "abc""$var" => "$var"作用:在url前面加上base_url,除非它已经是绝对url
作用:从内容中提取所有变量名,格式为$variable
Examples:>>> regex_findall_variables("$variable")["variable"]>>> regex_findall_variables("/blog/$postid")["postid"]>>> regex_findall_variables("/$var1/$var2")["var1", "var2"]>>> regex_findall_variables("abc")[]作用:从字符串内容中提取所有函数,格式为${fun()}
Examples:>>> regex_findall_functions("${func(5)}")["func(5)"]>>> regex_findall_functions("${func(a=1, b=2)}")["func(a=1, b=2)"]>>> regex_findall_functions("/api/1000?_t=${get_timestamp()}")["get_timestamp()"]>>> regex_findall_functions("/api/${add(1, 2)}")["add(1, 2)"]>>> regex_findall_functions("/api/${add(1, 2)}?_t=${get_timestamp()}")["add(1, 2)", "get_timestamp()"]作用:递归提取内容中的所有变量
作用:将函数参数解析到args和kwargs
Examples:>>> parse_function_params(""){'args': [], 'kwargs': {}}>>> parse_function_params("5"){'args': [5], 'kwargs': {}}>>> parse_function_params("1, 2"){'args': [1, 2], 'kwargs': {}}>>> parse_function_params("a=1, b=2"){'args': [], 'kwargs': {'a': 1, 'b': 2}}>>> parse_function_params("1, 2, a=3, b=4"){'args': [1, 2], 'kwargs': {'a':3, 'b':4}}作用:获取映射变量
作用:获取映射函数
作用:将带有变量和方法的字符串,转为字符串实际内容
Examples:>>> raw_string = "abc${add_one($num)}def">>> variables_mapping = {"num": 3}>>> functions_mapping = {"add_one": lambda x: x + 1}>>> parse_string(raw_string, variables_mapping, functions_mapping) "abc4def"作用:封装parse_string提供给外部调用
作用:解析变量映射
作用:解析参数,参数有3种形式
1. list列表:e.g. ["iOS/10.1", "iOS/10.2", "iOS/10.3"]
2.csv文件上传:"${parameterize(account.csv)}"
3.从debugtalk.py函数中生成:${gen_app_version()}