Pythonを使用する3.4.3Python3 Regex groupdictが正しく動作しない
私は正規表現を使って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を()。取得(" ID ")yields
NONE`を。
ここで間違っているものを任意のアイデアをし、それを解決する方法?
参照[tinycss:Python用CSSパーサ]の。(https://tinycss.readthedocs.io/en/latest/) –
@Wictor私はパースCSSがあることを知っています解決済み問題。これは私が最初からやろうとしていたより大きなものの一部でした。私は回避策を考えることができるので、これは動作する必要はありませんが、不正な動作のようです。 – fabikw
'?P'を使用しましたが、 '?P 'ではなく、グループ 'id'がありません。だから、すべて正常に動作し、あなたは単にタイプミスをしました。 –