python正则表达式无法匹配json中的空格

时间:2015-05-21 18:00:20

标签: python regex json

我有一个我想清理的json文件。我使用python字典匹配模式并替换为另一个字符串。例如,我使用解析字典将值替换为值:

parse_dict = {"\\r\\n\s*<!--\s*INTRODUCTION\s*-->\s*\\r\\n":""}

我的json看起来像这样:

[{"name": ["website1"], "description": ["<p>\r\n <!-- INTRODUCTION -->\r\n </p>", "<p>\r\n some text \r\n </p>"...

我想删除<p>\r\n <!-- INTRODUCTION -->\r\n </p>部分。但不知何故,解析词典无法匹配该字符串。知道为什么吗?

此外,我尝试{"<!-- INTRODUCTION -->":""},直接使用空格而不是\s,并且匹配。

还尝试了{"\s*<!-- INTRODUCTION -->":""},不匹配。

1 个答案:

答案 0 :(得分:0)

不知道你在做什么,但它确实有效:

>>> parse_dict = {"\\r\\n\s*<!--\s*INTRODUCTION\s*-->\s*\\r\\n":""}
>>> json = '[{"name": ["website1"], "description": ["<p>\r\n <!-- INTRODUCTION -->\r\n </p>", "<p>\r\n some text \r\n </p>"...'
>>> for pattern, replacement in parse_dict.items():
        json = re.sub(pattern, replacement, json)

>>> json
'[{"name": ["website1"], "description": ["<p> </p>", "<p>\r\n some text \r\n </p>"...'