正则表达式无法在2个字符串之间获取字符串. Python 27

前端之家收集整理的这篇文章主要介绍了正则表达式无法在2个字符串之间获取字符串. Python 27前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > 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)

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

猜你在找的正则表达式相关文章