'12345678'.slice(/.*(?=567)/) # => "1234" '12345678'.slice(/(?<=123).*/) # => "45678" '12345678'.slice(/(?!123).*/) # => "2345678" '12345678'.slice(/.*(?<!567)/) # => "12345678" '12345678'.slice(/.*(?<!5678$)/) # => "1234567"
斷言所匹配的位置後面不是 567,如果是則匹配失敗,具體來說你的.*在某一時刻一定匹配了一些字符的,如果這時候他所匹配的位置後面是 567 則認為匹配失敗,繼續貪婪或者回溯
求解释 (?= ) 是什么意思?
http://deerchao.net/tutorials/regex/regex.htm#backreference