Cover by Steven Levithan, Jan Goyvaerts

Safari, the world’s most comprehensive technology and business learning platform.

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required

O'Reilly logo

3.1. Literal Regular Expressions in Source Code

Problem

You have been given the regular expression [$"'\n\d/\\] as the solution to a problem. This regular expression consists of a single character class that matches a dollar sign, a double quote, a single quote, a line feed, any digit between 0 and 9, a forward slash, or a backslash. You want to hardcode this regular expression into your source code as a string constant or regular expression operator.

Solution

C#

As a normal string:

"[$\"'\n\\d/\\\\]"

As a verbatim string:

@"[$""'\n\d/\\]"

VB.NET

"[$""'\n\d/\\]"

Java

"[$\"'\n\\d/\\\\]"

JavaScript

/[$"'\n\d\/\\]/

XRegExp

"[$\"'\n\\d/\\\\]"

PHP

'%[$"\'\n\d/\\\\]%'

Perl

Pattern-matching operator:

/[\$"'\n\d\/\\]/
m![\$"'\n\d/\\]!

Substitution operator:

s![\$"'\n\d/\\]!!

Python

Raw triple-quoted string:

r"""[$"'\n\d/\\]"""

Normal string:

"[$\"'\n\\d/\\\\]"

Ruby

Literal regex delimited with forward slashes:

/[$"'\n\d\/\\]/

Literal regex delimited with punctuation of your choice:

%r![$"'\n\d/\\]!

Discussion

When this book shows you a regular expression by itself (as opposed to as part of a larger source code snippet), it always shows regular expressions unadorned. This recipe is the only exception. If you’re using a regular expression tester such as RegexBuddy or RegexPal, you would type in the regex this way. If your application accepts a regular expression as user input, the user would type it in this way.

But if you want to hardcode the regular expression into your source code, you have extra work. Carelessly copying ...

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required