使用Python 3.4.3
我正在尝试使用正则表达式将CSS分割为标识符。我的模式是:
pattern = re.compile("(?P<tag>[^.#]+)?(#(?P<iḍ>[^.#]+))?(?P<classes>([.][^.#]+)+)?")
我的测试字符串是h2#label
。当我进行比赛时,我得到的组是('h2', '#label', 'label', None, None)
这是正确的。
如果我得到匹配的groupdict
,我会{'classes': None, 'iḍ': 'label', 'tag': 'h2'}
看起来也是正确的。但是,当我尝试检索id
的值时,我会得到一个结果,好像它不存在一样。
执行"id" in match.groupdict()
会产生False
并执行“match.groupdict()。get(”id“)yields
无`。
知道这里有什么问题以及如何解决它?
答案 0 :(得分:1)
您需要修正拼写错误:而不是'iḍ'
类型'id'
。
pattern = re.compile("(?P<tag>[^.#]+)?(#(?P<id>[^.#]+))?(?P<classes>([.][^.#]+)+)?")