正则表达式与 "AND" 运算符连接

Regex concat with "AND" opeartor

我想用 AND 运算符连接两个正则表达式(我不知道这是否可能...)所以只有当字符串匹配 RegEx1 和 RegEx2 时才会发生匹配。

 RegEx1: [a-g]+
 RegEx2: [b-z]+
 Example1 : String "bcd" match 
 Example2 : String "hijk" not match 

使用 OR 运算符很容易,但是对于 AND 我找不到解决方案。

您可以使用正向先行运算符 (?=) 来组合表达式:

(?=[a-g]+)(?=[b-z]+)

这里有一个 fiddle 来测试它:https://regex101.com/r/kyy6XZ/1

在这种情况下,它在逻辑上等同于 [b-g]+,这意味着它应该匹配在 bg 区间内包含一个或多个字母的任何字符串,包括边界。

使用正向前瞻结合 'start and end of string' 锚点来确保匹配整个字符串并且不存在 "illegal" 个字母:

^(?=[a-g]+$)(?=[b-z]+$).*

https://regex101.com/r/Bz7qnb/2/