我想要一个python正则表达式,可以在script["
和"]
之间提取内容,但还有其他"]"
让我担心
预期:
{bunch of javascript here. [\"apple\"] test}
我的尝试:
javascript\[\"(.*)"]
目标字符串:
//url//script["{bunch of javascript here. [\"apple\"] test}"]|//*[@attribute="eggs"]
答案 0 :(得分:1)
您无法将嵌套括号与re模块匹配,因为它没有这样做的递归功能。但是,在您的示例中,如果您选择忽略双引号之间的所有括号,则可以跳过最里面的方括号。
尝试这样的事情:
p = re.compile(r'script\["([^\\"]*(?:\\.[^\\"]*)*)"]', re.S)
注意:我在这里假设谓词只与脚本节点的“文本”内容有关(而不是属性,一些项目或一个斧头)。
答案 1 :(得分:0)
由于您编写问题的方式,很难准确理解您想要实现的目标。但是,如果您在"]
之后查找}
的第一个实例,请尝试以下操作:
\["([^}]+}.*?)"\]
这也可行:
\["(.*?}.*?)"\]