您可以使用两个前瞻:
^(?=.*id=123456)(?=.*discography=True)
Run Code Online (Sandbox Code Playgroud)
从string(^)的开头我们首先寻找id=123456任何地方(由于.*).但是前瞻实际上并没有消耗任何东西,所以一旦找到模式,引擎会跳回到它开始的位置(字符串的开头)并从第二个模式开始.
正如eyquem所指出的,如果你的字符串中有换行符,.*则无法通过它们,除非你使用该选项re.S(或者re.DOTALL- 这只是一个别名).
但是,这看起来像是在尝试解析URL的查询字符串.也许你应该看看urlparse.