繁体   English   中英

正则表达式匹配两个单词

[英]Regex to match two words

我试图匹配包含以下两个单词的所有语句

ALPHA和BETA

我使用的正则表达式是

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

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

如果将上述代码更改为以下内容,有人可以告诉我是否会有任何后果。

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

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

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

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

参考: Quantifiers备忘单

干得好:

([^.]*ALPHA[^.]*)([^.]*BETA[^.]*)

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM