Anchors

Sometimes you want a match to be meaningful only at an edge: the start or the end, or maybe a word in the middle. You might even want to define your own edge—something is important only when it’s next to something else. Ruby’s regular expression engine lets you do all of these things, as well as match only when your match is not against an edge. Table C-4 lists common anchor syntax.

Table C-4. Regular expression anchors

Syntax

Meaning

^

When at the start of the expression, means to match the expression only against the start of the target (or a line within the target, when multiline matching is on).

$

When at the end of the expression, means to match the expression only against the end of the target (or the end of a line within the target, when multiline matching is on).

\A

When at the start of the expression, means to match the expression only against the start of the target string, not lines within it.

\Z

When at the end of the expression, means to match the expression only against the end of the target string, not lines within it.

\b

Marks a boundary between words, up against whitespace.

\B

Marks something that isn’t a boundary between words.

(?=expression)

Lets you define your own boundary, by limiting the match to things next to expression.

(?!expression)

Lets you define your own boundary, by limiting the match to things that are not next to expression.

These make a little more sense if you see them in action. For example, if you only want to match “The” when it’s ...

Get Learning Rails now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.