Open1

正規表現

ykttdnykttdn

肯定先読み

# 'cd'が直後に来る'ab'
/ab(?=cd)/.match?('12abcdef')
# => true
/ab(?=cd)/.match?('12abcef')
# => false

否定先読み

# 'cd'が直後に来ない'ab'
/ab(?!cd)/.match?('12abcef')
# => true
/ab(?!cd)/.match?('12abcdef')
# => false

肯定先読み

# 'ab'が直前に来る'cd'
/(?<=ab)cd/.match?('12abcdef')
# => true
/(?<=ab)cd/.match?('12acdef')
# => false

否定後読み

# 'ab'が直前に来ない'cd'
/(?<!ab)cd/.match?('12acdef')
# => true
/(?<!ab)cd/.match?('12abcdef')
# => false

https://docs.ruby-lang.org/ja/latest/method/Regexp/i/match=3f.html