我正在寻找一个正则表达式,它检查一个只有一个开口大括号和任意数量的右括号的模式,所以:
"something{word_or_not}}}}}}}"
#should return true.
"something{{word_or_not}}}}}}}}"
#should return false.
这是我得到"\{\w*\}\}+"
的距离,但不是那么远,因为这会为第二个例子返回true
。
答案 0 :(得分:0)
这个正则表达式可能适合:
str1 = "{word_or_not}}}}}}}"
str2 = "{{word_or_not}}}}}}}}"
str1.match?(/\A\{[^{]*?\}+\z/) #=> true
str2.match?(/\A\{[^{]*?\}+\z/) #=> false
答案 1 :(得分:0)
答案 2 :(得分:0)
有人可能会明确检查negative lookbehind:
%w|{word_or_not}}}}}}} {{word_or_not}}}}}}}|.
map(&/(?<!{){\w+}+/.method(:=~))
#⇒ [0, nil]