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

race · 2012年03月10日 · 最后由 alucardpj 回复于 2012年03月12日 · 3163 次阅读
'12345678'.slice(/.*(?=567)/)
# => "1234" 
'12345678'.slice(/(?<=123).*/)
# => "45678" 
'12345678'.slice(/(?!123).*/)
# => "2345678" 
'12345678'.slice(/.*(?<!567)/)
# => "12345678" 
'12345678'.slice(/.*(?<!5678$)/)
# => "1234567" 

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

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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号