正则表达式无法在2个字符串之间获取字符串. Python 27
发布时间:2020-12-14 06:02:25 所属栏目:百科 来源:网络整理
导读:参见英文答案 How do I match any character across multiple lines in a regular expression?????????????????????????????????????21个 从此URL视图来源: https://www.amazon.com/dp/073532753X?smid=A3P5ROKL5A1OLE 我想在var iframeContent =和obj.onlo
参见英文答案 >
How do I match any character across multiple lines in a regular expression?????????????????????????????????????21个
从此URL视图来源: https://www.amazon.com/dp/073532753X?smid=A3P5ROKL5A1OLE 我想在var iframeContent =和obj.onloadCallback = onloadCallback之间获取字符串; 我有这个正则表达式iframeContent(.*?)obj.onloadCallback = onloadCallback; 但它不起作用.我不擅长正则表达式,所以请原谅我缺乏知识. 我甚至尝试过iframeContent(.*?)obj.onloadCallback但它不起作用. 解决方法
看起来你只想要那个巨大的编码字符串.我相信你的失败有两个原因.你没有在DOTALL模式下运行,这意味着你的.不会匹配多行,并且你的正则表达式因
catastrophic backtracking而失败,这可能发生在你有一个很长的可变长度匹配,匹配与后面的字符相同的字符时.
这应该得到你想要的 m = re.search(r'var iframeContent = "([^"]+)"',html_source) print m.group(1) 正则表达式只是在两个双引号之间寻找除双引号[^“]之外的任何字符.因为变量长度匹配和紧跟在它之后的匹配不匹配任何相同的字符,所以你不会遇到灾难性的回溯问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |