# Newbie question

**URL:** <https://www.ruby-forum.com/t/newbie-question/48586>\
**Category:** Ruby\
**Created:** [November 22, 2005, 1:32pm UTC](https://www.ruby-forum.com/t/newbie-question/48586 "2005-11-22T13:32:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 1:32pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/1 "2005-11-22T13:32:46Z")

</div>

Hi all,

I’m playing with patterns:

irb(main):001:0\> name = “Jasmine”  
=\> “Jasmine”  
irb(main):002:0\> phrase = “ja”  
=\> “ja”  
irb(main):003:0\> name.sub(/ja/i, ‘\*\*’)  
=\> "**smine"  
irb(main):004:0\> name.sub(/phrase/i, '**’)  
=\> “Jasmine”

So, how do I tell sub that it should use the local variable phrase  
instead of the string ‘phrase’ ?

TIA,  
Vamsee.

---

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 1:36pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/2 "2005-11-22T13:36:48Z")

</div>

irb(main):001:0\> a = “Jasmine”  
=\> “Jasmine”  
irb(main):002:0\> phrase = “jas”  
=\> “jas”  
irb(main):003:0\> a.sub(/#{phrase}/i, ‘\*\*’)  
=\> “\*\*mine”  
irb(main):004:0\>

Am Dienstag 22 November 2005 13:29 schrieb Vamsee K.:

---

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 1:36pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/3 "2005-11-22T13:36:48Z")

</div>

> irb(main):001:0\> name = “Jasmine”  
> =\> “Jasmine”  
> irb(main):002:0\> phrase = “ja”  
> =\> “ja”  
> irb(main):003:0\> name.sub(/ja/i, ‘\*\*’)  
> =\> "**smine"  
> irb(main):004:0\> name.sub(/phrase/i, '**’)  
> =\> “Jasmine”

Just the same way you do variable substitution in strings (like in  
puts):

irb(main):005:0\> name.sub(/#{phrase}/i, ‘\*\*’)  
=\> “\*\*smine”

Benedikt

ALLIANCE, n. In international politics, the union of two thieves who  
have their hands so deeply inserted in each other’s pockets that  
they cannot separately plunder a third.  
(Ambrose Bierce, The Devil’s Dictionary)

---

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 1:40pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/4 "2005-11-22T13:40:49Z")

</div>

Vamsee K. wrote:

> irb(main):004:0\> name.sub(/phrase/i, ‘\*\*’)  
> =\> “Jasmine”
> 
> So, how do I tell sub that it should use the local variable phrase  
> instead of the string ‘phrase’ ?

Try name.sub(/#{phrase}/i, ‘\*\*’)

```
robert
```

---

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 2:01pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/5 "2005-11-22T14:01:03Z")

</div>

Robert K. wrote:

> Try name.sub(/#{phrase}/i, ‘\*\*’)

Got it. Thanks all!

---

<div class="post-metadata">

**Author:** ![vamlists](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/9de0a6/32.png) [@vamlists](https://www.ruby-forum.com/u/vamlists)\
**Post date:** [November 22, 2005, 3:25pm UTC](https://www.ruby-forum.com/t/newbie-question/48586/6 "2005-11-22T15:25:35Z")

</div>

Vamsee K. wrote:

> irb(main):004:0\> name.sub(/phrase/i, ‘\*\*’)  
> =\> “Jasmine”
> 
> So, how do I tell sub that it should use the local variable phrase  
> instead of the string ‘phrase’ ?

irb(main):013:0\> phrase = /ja/i  
=\> /ja/i  
irb(main):014:0\> “Jasmine”.sub(phrase, ‘\*\*’)  
=\> “\*\*smine”
