我得到的变量string
等于shid!
我想要一个正则表达式,如果输入的字符串与前一个变量string
中的每个字符匹配良好,则呈现true。
由于我总是无法正确解释我想要做什么,这里有一个可能的输入和输出的例子:
shid!
返回 true shid
返回 false shhhhiddd!
返回 true ssssshhhhiiiiiddd!!!!
返回 true hsid!
返回 false 对于仪式问题“我尝试了什么”,我不习惯正则表达式。所以我的答案是:"shid!" =~ /s.*!/
,显然这不是一个好的答案,我知道为什么,但不知道如何解决它。谢谢你的帮助
答案 0 :(得分:4)
尝试:
string = 'shid!'
reg = Regexp.new string.split('').join('+')
!!('shid!' =~ reg) #=> true
!!('shid' =~ reg) #=> false
!!('shhhhiddd!' =~ reg) #=> true
!!('ssssshhhhiiiiiddd!!!!' =~ reg) #=> true
!!('hsid!' =~ reg) #=> false
答案 1 :(得分:3)
您可以使用#squeeze
str.squeeze == 'shid!' #=> true
答案 2 :(得分:0)
我不确定我有问题。但也许这就是你要找的东西:
str = 'ssssshhhhiiiiiddd!!!!'
str.split('').uniq.join == 'shid!' #=> true