加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式无法在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)

正则表达式只是在两个双引号之间寻找除双引号[^“]之外的任何字符.因为变量长度匹配和紧跟在它之后的匹配不匹配任何相同的字符,所以你不会遇到灾难性的回溯问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读