我想检查前N个字符是否与正则表达式匹配。在这种情况下3个字符。为什么两种情况都为零?
irb(main):004:0> "abc" =~ /abcde{3}/
=> nil
irb(main):008:0> /abcde{3}/ =~ "abc"
=> nil
答案 0 :(得分:0)
一种说法是因为字符串"abc"
短于七个字符。
答案 1 :(得分:0)
搞砸了正则表达式和字符串。 /abcde{3}/
表示/abcdeee/
。你需要的是:
"abcde"[0...3] =~ /\Aabc\z/
或只是:
"abcde" =~ /\Aabc/
答案 2 :(得分:0)
你的正则表达式试图在两个语句中出现三次char e ,但你没有。所以,你的正则表达式可能是这样的,
"abcdeee" =~ /abcde{3}/
# => 0
/abcde{3}/ =~ 'abcdeee'
# => 0
所以,我认为你需要使用下面的正则表达式来匹配N个字符,
'abcdee' =~ /[a-e]{3}/
# => 0
$&
# => "abc"
如果您需要更多信息,请与我们联系。
答案 3 :(得分:0)
您可以尝试使用以下exp
/[abcde]{3}/