假设我有这两个正则表达式:
id=123456
discography=True
如果事先不知道这些字符串在输入中的顺序,我如何检查它们是否都匹配正则表达式?
最佳答案
你可以使用两个 lookaheads :
^(?=.*id=123456)(?=.*discography=True)
从字符串的开头 (^
) 我们首先在任何地方寻找 id=123456
(由于 .*
)。但前瞻实际上并没有消耗任何东西,所以一旦找到模式,引擎就会跳回到它开始的地方(字符串的开头)并从第二个模式开始。
正如 eyquem 所指出的,如果您的字符串中有换行符,.*
不能越过它们,除非您使用选项 re.S
(或 re.DOTALL
- 这只是一个别名)。
但是,这看起来像是您正在尝试解析 URL 的查询字符串。也许您应该看看 urlparse
。
关于python - 如何结合两个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776544/