如何用Python正则匹配/x=y格式的自定义标签内容?
解决方案
你原来的正则表达式^[A-Za-z0-9]{1}^[A-Za-z0-9]{1}完全不符合需求:^代表行首,一个模式里出现两个行首符号无法匹配任何内容,且限定仅匹配1个字符也和你的目标不匹配。
针对提取键=值并格式化为键 值的需求,正确的实现方式如下:
代码示例
import re linein = "yellow=flower/blue=sky" # 匹配所有由字母数字组成的键值对结构 pattern = r'([A-Za-z0-9]+)=([A-Za-z0-9]+)' matches = re.findall(pattern, linein) # 按要求格式输出 for key, value in matches: print(f"{key} {value}")
输出结果
yellow flower blue sky
正则说明
([A-Za-z0-9]+):匹配一个或多个字母/数字,括号用于捕获分组,分别提取键和值=:匹配字面量的等号re.findall会返回所有匹配的分组对,每个元素是(键, 值)的元组,遍历后即可按要求输出
内容的提问来源于stack exchange,提问作者JD13
相关产品推荐
相关产品推荐

