Ruby 1.9正則表達式支持lookbehind斷言,但在模式中傳遞錨時似乎很困難。當錨點在前瞻斷言中傳遞時,它運行得很好。Ruby 1.9正則表達式Lookbehind Assertion&Anchors
"well substring! "[/(?<=^|\A|\s|\b)substring!(?=$|\Z|\s|\b)/] #=> RegexpError: invalid pattern in look-behind: /(?<=^|\A|\s|\b)substring(?=$|\Z|\s|\b)/
有沒有人知道如何使錨在lookbehead斷言中工作?
是否有一個特殊的轉義序列或分組是後視所需的?
我已經在1.9.1-p243,p376和1.9.2-preview3中測試了這種行爲,以防萬一它被修補。
最終,這並不像錨點\ b不被識別爲像前視斷言那樣的字邊界,而是一個錨問題。使用不是一個不是字的邊界 - [^ \ B]解決了這個問題。 – klappy 2010-08-02 20:43:56
這可能會讓你感到驚訝,但是如果'\ b'在你身後,它也就在你的面前!至少在Java中,所有零寬度錨都是如此。 – polygenelubricants 2010-08-03 07:02:23
Klappy!這是一個很小的世界! – tybro0103 2011-09-30 02:53:13