MST
星途 面试题库

面试题:Python正则表达式处理复杂文本格式转换

假设你有一个复杂的文本,格式如下:'[tag1:value1;tag2:value2][tag3:value3;tag4:value4]',其中tag是自定义标签,value是对应的值,且标签和值中可能包含各种字符(除了';'和']')。请使用Python的re模块编写代码,将这种文本格式转换为字典形式,如{'tag1': 'value1', 'tag2': 'value2', 'tag3': 'value3', 'tag4': 'value4'}。要求考虑到文本格式可能存在的各种边界情况和错误处理。
43.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import re


def convert_text_to_dict(text):
    try:
        pattern = re.compile(r'\[(.*?)\]')
        parts = pattern.findall(text)
        result = {}
        for part in parts:
            pairs = part.split(';')
            for pair in pairs:
                try:
                    tag, value = pair.split(':', 1)
                    result[tag] = value
                except ValueError:
                    continue
        return result
    except TypeError:
        return {}


你可以这样调用函数:

text = '[tag1:value1;tag2:value2][tag3:value3;tag4:value4]'
print(convert_text_to_dict(text))