首页 > 其他分享 >字符串变量初始化

字符串变量初始化

时间:2023-02-20 01:22:23浏览次数:34  
标签:初始化 sub resolve 变量 index global var 字符串 string

import re

# 解析字符串中全局变量并进行替换
def resolve_global_var(pre_resolve_var, global_var_dic, global_var_regex='\${.*?}',
                   match2key_sub_string_start_index=2, match2key_sub_string_end_index=-1):

    '''
    :param pre_resolve_var: 准备进行解析的变量<str>
    :param global_var_dic: 全局变量字典<dict>
    :param global_var_regex: 识别全局变量正则表达式<str>
    :param match2key_sub_string_start_index: 全局变量表达式截取成全局变量字典key值字符串的开始索引<int>
    :param match2key_sub_string_end_index: 全局变量表达式截取成全局变量字典key值字符串的结束索引<int>
    :return: 解析后的变量<str>
    '''

    if not isinstance(pre_resolve_var, str):
        raise TypeError('pre_resolve_var must be str!')

    if not isinstance(global_var_dic, dict):
        raise TypeError('global_var_dic must be dict!')

    if not isinstance(global_var_regex, str):
        raise TypeError('global_var_regex must be str!')

    if not isinstance(match2key_sub_string_start_index, int):
        raise TypeError('match2key_sub_string_start_index must be int!')

    if not isinstance(match2key_sub_string_end_index, int):
        raise TypeError('match2key_sub_string_end_index must be int!')

    # re_global_var = re.compile(global_var_regex)

    def global_var_repl(match_obj):
        start_index = match2key_sub_string_start_index
        end_index = match2key_sub_string_end_index
        print(match_obj.group()[start_index:end_index])
        match_value = global_var_dic.get(match_obj.group()[start_index:end_index])
        return match_value if match_value else match_obj.group()

    resolved_var = re.sub(pattern=global_var_regex, string=pre_resolve_var, repl=global_var_repl)
    return resolved_var
if __name__ == '__main__':
    pre_resolve_var = 'left ${status} right, left ${data} right'
    global_var_dic = {'status': 'STATUS', 'data': 'DATA'}
    resolved_str = resolve_global_var(pre_resolve_var=pre_resolve_var, global_var_dic=global_var_dic)
    print(resolved_str)

  

标签:初始化,sub,resolve,变量,index,global,var,字符串,string
From: https://www.cnblogs.com/kxtomato/p/17136043.html

相关文章

  • 从汇编角度识别与还原静态局部变量
    msvcx86.text:00468FC1moveax,largefs:2Ch;这一段代码不知道有啥用,反正每次都会跳入00469033.text:00468FC7movecx,T......
  • 对称美学,对称字符串
    时间限制:1s空间限制:256MB限定语言:不限题目描述:对称就是最大的美学,现有一道关于对称字符串的美学。已知:第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字......
  • 指针和字符串基础知识
    #include"stdafx.h"intmain(intargc,char*argv[]){//定义字符串的第一种方式,此种定义的字符可修改chara[]="it";a[0]='T';printf("%s\n",a);//定义字......
  • C字符串基础
    #include<string.h>#include<stdio.h>intmain(){charname[]="mhm";charname2[]={'1','2'};printf("%s\n",name);//mhmprintf(......
  • JS字符串和json转换
    <head><scriptsrc="jquery-1.8.0.min.js"type="text/javascript"></script><scriptsrc="jquery.json-2.4.js"type="text/javascript"></script></head>varst......
  • 【LeeCode】28. 找出字符串中第一个匹配项的下标
    【题目描述】给你两个字符串 ​​haystack​​ 和 ​​needle​​ ,请你在 ​​haystack​​ 字符串中找出 ​​needle​​ 字符串的第一个匹配项的下标(下标从0开......
  • 算法刷题-字符串最后一个单词的长度-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 算法刷题-无重复字符的最长子串(哈希表、字符串)、数字 1 的个数(递归、数学)、对称二
    无重复字符的最长子串(哈希表、字符串)给定一个字符串,请你找出其中不含有重复字符的**最长子串**的长度。示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符......
  • 第三章 字符串、向量和数组
    第三章字符串、向量和数组using声明使用某个命名空间:例如usingstd::cin表示使用命名空间std中的名字cin。头文件中不应该包含using声明。这样使用了该头文件的源码......
  • 周六1900C++班级-2023.2.19-字符串string
    字符串练习使用string定义一个字符串变量strings;字符串是单引号的(×)整行输入字符串有三种方式,分别是gets(),getline(cin,str),cin.getline(str,100)(√)gets是字符数......