# Look-around not working in ruby 1.9.0 or my mistake?

**URL:** <https://www.ruby-forum.com/t/look-around-not-working-in-ruby-1-9-0-or-my-mistake/144875>\
**Category:** Ruby\
**Created:** [August 3, 2008, 7:12pm UTC](https://www.ruby-forum.com/t/look-around-not-working-in-ruby-1-9-0-or-my-mistake/144875 "2008-08-03T19:12:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [August 3, 2008, 7:12pm UTC](https://www.ruby-forum.com/t/look-around-not-working-in-ruby-1-9-0-or-my-mistake/144875/1 "2008-08-03T19:12:17Z")

</div>

Hi,

I just installed ruby 1.9.0 (2008-07-25 revision 18217) [i386-mswin32]  
in order get Ruby look-behind functionality. I expected the following  
snippet to insert a substring, but it did nothing:

Ruby:  
printf(“item = “%s”\n”, item) if $DEBUG  
printf(“item basename = “%s”\n”, File.basename(item)) if $DEBUG  
item.sub!( /(?\<=Investment-\d\d.\d\d)(?=-)/, ‘.2008’)  
printf(“new item base = “%s”\n”, File.basename(item)) if $DEBUG

Output:  
item = “K:\_\_\_Investment\2008-Trades\Investments-06.19-2100.xls”  
item basename = “Investments-06.19-2100.xls”  
new item base = “Investments-06.19-2100.xls”

Expected:  
new item base = “Investments-06.19.2008-2100.xls”

Any idea of what’s wrong?

TIA,  
Richard

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [August 3, 2008, 8:15pm UTC](https://www.ruby-forum.com/t/look-around-not-working-in-ruby-1-9-0-or-my-mistake/144875/2 "2008-08-03T20:15:30Z")

</div>

On Aug 3, 1:03 pm, RichardOnRails  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> printf(“new item base = "%s"\n”, File.basename(item)) if $DEBUG
> 
> TIA,  
> Richard

Hi All,

The answer is my mistake ☹  
I left the “s” out of “investments”, i.e the sub. statement should  
have been:

item.sub!( /(?\<=Investments-\d\d.\d\d)(?=[-])/, ‘.2008’)

I apologize for posting a false alarm.

Best wishes,  
Richard
