Ruby 谁给解释一下,后两个正则表达式是什么意思

race · March 10, 2012 · Last by alucardpj replied at March 12, 2012 · 3156 hits
'12345678'.slice(/.*(?=567)/)
# => "1234" 
'12345678'.slice(/(?<=123).*/)
# => "45678" 
'12345678'.slice(/(?!123).*/)
# => "2345678" 
'12345678'.slice(/.*(?<!567)/)
# => "12345678" 
'12345678'.slice(/.*(?<!5678$)/)
# => "1234567" 

斷言所匹配的位置後面不是 567,如果是則匹配失敗,具體來說你的.*在某一時刻一定匹配了一些字符的,如果這時候他所匹配的位置後面是 567 則認為匹配失敗,繼續貪婪或者回溯

求解释 (?= ) 是什么意思?

You need to Sign in before reply, if you don't have an account, please Sign up first.