O'Reilly logo

Regular Expressions Cookbook, 2nd Edition by Steven Levithan, Jan Goyvaerts

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required