结合两个正则表达式

Pau*_*gas 4 ruby regex syntax

true如果字符串以辅音开头,我想返回.我有两个条件,不知道如何组合它们.

1)这是一封信2)它不是元音

!!(s[0] =~ /([a-z]&&[^aeiou])/i)
Run Code Online (Sandbox Code Playgroud)

我尝试了各种其他语法,如:

!!(s[0] =~ /([a-z])([^aeiou])/i)
!!(s[0] =~ /(([a-z])([^aeiou]))/i)
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个正则表达式中这样做?我需要分别检查每个条件吗?

Ste*_*fan 8

您可以使用&&运算符组合字符类:

/[a-z&&[^aeiou]]/
Run Code Online (Sandbox Code Playgroud)

需要注意的是,&&运营商使用的内部字符类,而不是事后.

文档:

字符类可能包含另一个字符类.这本身并没有用,因为它[a-z[0-9]]描述了相同的集合[a-z0-9].但是,字符类还支持&&在其参数上执行set intersection 的运算符.这两者可以组合如下:

/[a-w&&[^c-g]z]/ # ([a-w] AND ([^c-g] OR z))
# This is equivalent to:
/[abh-w]/
Run Code Online (Sandbox Code Playgroud)