python regex转义分隔符之间的元字符

时间:2018-11-03 03:06:28

标签: python regex

Python 2.4.4(是的,长话大说) 我想解析这个片段(带re)

    "comment":"#2 Surely, (this) can't be any [more] complicated a reg-ex?",

即,它(注释)可以包含字符(大写或小写),数字,哈希,括号,方括号,单引号和逗号,并且它(此片段)特别以dquote和逗号结尾

我已经有了表达,

    r'\"comment\":\"(?P<COMMENT>[a-zA-Z0-9\s]+)\",'

但是,当然,仅当注释中没有任何元字符时,它才匹配。最后一个\“,作为终止条件。我尝试了各种转义,双重转义...

请问一种“怪胎”可以启发吗? 我想以match.group [“ COMMENT”]

的形式访问“整个”评论
  1. 根据要求将模式更正为我实际使用的模式。我不好的剪切粘贴。
  2. 直到标记有所有“ DUPLICATES”,我才能拼写JSON。但是,我指定我必须使用re来完成此操作。
  3. 即使有所有JSON响应和代码碎片,它直到2.6才引入,我确实指定我仍在使用2.4.4。

感谢那些使用基于正则表达式的解决方案的人。现在为我工作:)

1 个答案:

答案 0 :(得分:0)

使用非贪婪的.*?来匹配",之前的所有内容,并假定此内容为注释的结尾:

import re

s = '''"comment":"#2 Surely, (this) can't be any [more] complicated a reg-ex?",'''

match = re.search(r'"comment":"(?P<comment>.*?)",', s)
print(match.group('comment'))

# #2 Surely, (this) can't be any [more] complicated a reg-ex?

您可以使用(?P<group_name>…)来命名匹配的字符串。