正则表达式,不匹配两个下划线

Vik*_*ary 2 ruby regex

我不知道这是否真的很容易,我不在乎......

在Ruby的正则表达式中,如何匹配不包含两个连续下划线的字符串,即"__".

例如:

Matches: "abcd", "ab_cd", "a_b_cd", "%*##_@+"
Does not match: "ab__cd", "a_b__cd"
Run Code Online (Sandbox Code Playgroud)

-谢谢

编辑:我不能使用反向逻辑,即检查"__"字符串并排除它们,因为需要使用Ruby on Rails"validates_format_of()",它需要一个与之匹配的正则表达式.

And*_*mar 10

你可以使用负向前瞻:

^((?!__).)*$
Run Code Online (Sandbox Code Playgroud)

字符串的开头和字符串^的结尾$很重要,它们强制检查每个位置上的"没有后跟双下划线".