# Porting perl regexp to ruby

**URL:** <https://www.ruby-forum.com/t/porting-perl-regexp-to-ruby/101865>\
**Category:** Ruby\
**Created:** [August 8, 2006, 12:26pm UTC](https://www.ruby-forum.com/t/porting-perl-regexp-to-ruby/101865 "2006-08-08T12:26:23Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [August 8, 2006, 12:26pm UTC](https://www.ruby-forum.com/t/porting-perl-regexp-to-ruby/101865/1 "2006-08-08T12:26:23Z")

</div>

I have a perl regexp that strips c++ comments (I have not constructed  
this myself, found it here:  
[Perl Documentation - Perldoc Browser](http://www.perl.com/doc/FAQs/FAQ/oldfaq-html/Q4.27.html) ). However, it  
uses the ‘e’ modifier that will take the replacement value and evaluate  
it. How do I get similar functionality in ruby?

perl regexp below:  
s#//(._)|/\*[^_]_\*+([^/_][^_]_\*+)_/|“(\.|[^”\])_“|‘(\.|[^’\])_‘|[^/"’]+#  
$1 ? "/_$1 \*/” : $& #ge;

/Nick

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [August 8, 2006, 2:08pm UTC](https://www.ruby-forum.com/t/porting-perl-regexp-to-ruby/101865/2 "2006-08-08T14:08:33Z")

</div>

On Aug 8, 2006, at 6:25 AM, removed\_email\_address@domain.invalid wrote:

> $1 ? “/\*$1 \*/” : $& #ge;
> 
> /Nick

Look at the documentation for gsub. Specifically the block form.

e.g.:

string.gsub(/regex/) { |matched\_string| code\_to\_evaluate }
