python - 正则表达式匹配两个词

标签 python regex

我正在尝试匹配包含以下两个词的所有语句

初版和测试版

我使用的正则表达式是

(?=.*ALPHA)(?=.*BETA)

我理解这意味着向前看任何字符以检查给定字符串中是否存在 ALPHA 和 BETA。

有人能告诉我如果将上面的代码改成下面这样会不会有什么后果。

(?=.*?ALPHA)(?=.*?BETA)

这个额外的问号会做什么?

我的输入字符串类似于“ALPHA|checkagainst|(BETA_val)”。 我编写的正则表达式应该为上述输入返回 true,因为同时存在单词 ALPHA 和 BETA

最佳答案

它与贪婪和非贪婪量词有关。问号表示匹配是非贪婪的,匹配尽可能少的字符。

引用:Quantifiers cheat sheet

关于python - 正则表达式匹配两个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143812/

相关文章:

python - 使 QTextEdit 大小适合文本大小 pyqt5

regex - 如何在Linux中使用正则表达式输出数字?

python - Pandas 如何截断分钟,秒 pandas.tslib.Timestamp

python - 为什么 PyMethodDef 数组需要一个包含多个 NULL 的标记元素?

Python:绑定(bind)一个未绑定(bind)的方法?

python - 在 RNN 中每对序列重置 LSTM 中的 c_t 和 h_t

javascript - .js 和 .jsx 的 Webpack 正则表达式测试

java - 使用双正则表达式分割字符串java

regex - strsplit 与 gregexpr 不一致

ruby - 从 Ruby 中的字符串中删除非 UTF 字符?