Skip to Content
GREP in InDesign
book

GREP in InDesign

by Peter Kahrel
October 2008
Intermediate to advanced
53 pages
1h 57m
English
O'Reilly Media, Inc.
Content preview from GREP in InDesign

Conditional GREP Expressions

The techniques demonstrated up to now in this Short Cut are all frequently applied. In this section we show a rather less common construct, and though you’ll probably need it less often than the expression types discussed earlier (if at all), it can be useful to have this advanced method in your arsenal. We’ll give a few examples.

Suppose you want to match a word, say quick, and, if it occurs in square brackets, those brackets as well. You define this strictly: either two brackets or none. So you want quick and [quick], but not [quick or quick]. Some experiments show that including the brackets as optional, \[?quick\]?, isn’t any good because it would give you quick with just the opening or the closing bracket as well. So we’re looking for something like “match the closing bracket only when there is a match for the opening bracket”—in other words, a match is made conditional on an earlier match. You can write this as a GREP expression as follows (the conditional is underlined):

(?x) (\[)? quick (?(1)\])

What happens is this: with (\[)? we try to match an opening square bracket; the question mark indicates that the expression may or may not match. Then it matches quick. Then follows the conditional: (?(1)\]) paraphrases as “if there was a match for the first capturing parenthesis, referred to here by (1)—in other words, if quick is preceded by a bracket—then match a closing bracket now.” If there was no match before quick, a match won’t be attempted ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

GREP in InDesign CS3

GREP in InDesign CS3

Peter Kahrel
HTML5 for Publishers

HTML5 for Publishers

Sanders Kleinfeld

Publisher Resources

ISBN: 9780596157173Errata Page