如何结合两个正则表达式?

iTa*_*ayb 2 python regex

假设我有这两个正则表达式:

  1. id=123456
  2. discography=True

如何在不事先知道输入中这些字符串的顺序的情况下检查它们是否都匹配正则表达式?

Mar*_*der 6

您可以使用两个前瞻:

^(?=.*id=123456)(?=.*discography=True)
Run Code Online (Sandbox Code Playgroud)

从string(^)的开头我们首先寻找id=123456任何地方(由于.*).但是前瞻实际上并没有消耗任何东西,所以一旦找到模式,引擎会跳回到它开始的位置(字符串的开头)并从第二个模式开始.

正如eyquem所指出的,如果你的字符串中有换行符,.*则无法通过它们,除非你使用该选项re.S(或者re.DOTALL- 这只是一个别名).

但是,这看起来像是在尝试解析URL的查询字符串.也许你应该看看urlparse.