Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
November 19, 2020 03:08 pm GMT

Regexes with multiple slashes in Ruby

I picked up a new tip yesterday while working with regexes in Ruby.

tl;dr - Use %r{} over /.../ when matching regexes with more than one /.

I was testing if a string begins with http:// or https:// and wrote a small regex.

/^https?:\/\//
Enter fullscreen mode Exit fullscreen mode

Broken down, this ensures the string:

  1. Starts with http
  2. The next character is optionally s
  3. The next characters are ://

Even for such a simple regex that feels a bit hard for me to read. There are too many escaped slashes for my taste.

To improve this a bit you can use r%{} over /.../. The syntax works the same but you dont need to escape slashes.

The regex becomes something much more readable:

%r{^https?://}
Enter fullscreen mode Exit fullscreen mode

GitHub's RuboCop styleguide has a recommendation on when to use this syntax.

Use %r only for regular expressions matching more than one / character. - RubuCop Ruby Style Guide

P.S. I could have probably just used two #starts_with? calls but wheres the fun in that?


Original Link: https://dev.to/joemasilotti/regexes-with-multiple-slashes-in-ruby-1c4p

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To