Quick Start
Tutorial
Search & Replace
Tools & Languages
Examples
Reference
Replacement Reference
Introduction
Table of Contents
Characters
Matched Text & Backreferences
Case Conversion
Context
Conditionals
Regular Expressions Reference
More on This Site
Introduction
Regular Expressions Quick Start
Regular Expressions Tutorial
Replacement Strings Tutorial
Applications and Languages
Regular Expressions Examples
Regular Expressions Reference
Replacement Strings Reference
Book Reviews
Printable PDF
About This Site
RSS Feed & Blog
RegexBuddy—Better than a regular expression reference!

Replacement Strings Reference: Conditionals

FeatureSyntaxDescriptionExampleJGsoft Python JavaScript VBScript XRegExp .NET Java ICU RE2 Perl PCRE2 PHP Delphi R Ruby std::regex Boost Tcl Oracle XPath
Conditional ?1yes:no through ?99yes:no Conditional referencing a numbered capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (y)?|n in yyn! with ?1yes:no yields yesyesno! nonononononononononononononononoallnonono
Conditional (?1yes:no) through (?99yes:no) Conditional referencing a numbered capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (y)?|n in yyn! with (?1yes:no) yields yesyesno! V2nononononononononononononononoallnonono
Conditional (?10yes:no) through (?99yes:no) When there are fewer capturing groups than the 2-digit number, treat this as a single-digit conditional with the “yes” part starting with a literal number instead of as an invalid conditional. Replacing all matches of (y)?|n in yyn! with (?19yes:no) yields 9yes9yesno! V2n/an/an/an/an/an/an/an/an/an/an/an/an/an/an/anon/an/an/a
Conditional ?{1}yes:no through ?{99}yes:no Conditional referencing a numbered capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (y)?|n in yyn! with ?{1}yes:no yields yesyesno! nonononononononononononononononoall
1.42
nonono
Conditional (?{1}yes:no) through (?{99}yes:no) Conditional referencing a numbered capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (y)?|n in yyn! with (?{1}yes:no) yields yesyesno! V2nononononononononononononononoall
1.42
nonono
Conditional ${1:+yes:no} through ${99:+yes:no} Conditional referencing a numbered capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (y)?|n in yyn! with ${1:+yes:no} yields yesyesno! V2nononononononononoextendednonononononononono
Conditional ${1:-no} through ${99:-no} Conditional referencing a numbered capturing group. Inserts the text captured by the group if it participated or the contents of the conditional if it didn’t. Replacing all matches of (y)?|n in yyn! with ${1:-no} yields yyno! V2nononononononononoextendednonononononononono
Conditional Any numbered conditional A conditional that references the number of a capturing group that does not exist acts as a conditional to a group that never participates. Replacing all matches of (y)?|n in yyn! with (?9yes:no) yields nonono! V2 errorn/an/an/an/an/an/an/an/an/aextended errorn/an/an/an/an/aalln/an/an/a
Conditional $?{name}yes:no Conditional referencing a named capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (?'one'y)?|n in yyn! with ?{one}yes:no yields yesyesno! nonononononononononononononononoall
1.42
nonono
Conditional (?{name}yes:no) Conditional referencing a named capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (?'one'y)?|n in yyn! with (?{one}yes:no) yields yesyesno! V2nononononononononononononononoall
1.42
nonono
Conditional ${name:+yes:no} Conditional referencing a named capturing group. Inserts the “yes” part if the group participated or the “no” part if it didn’t. Replacing all matches of (?'one'y)?|n in yyn! with ${one:+yes:no} yields yesyesno! V2nononononononononoextendednonononononononono
Conditional ${name:-no} Conditional referencing a named capturing group. Inserts the text captured by the group if it participated or the contents of the conditional if it didn’t. Replacing all matches of (?'one'y)?|n in yyn! with ${one:-no} yields yyno! V2nononononononononoextendednonononononononono
Conditional Any named conditional A conditional that references the name of a capturing group that does not exist is treated as literal text. Replacing all matches of (y)?|n in yn! with (?{name}yes:no) yields ?{name}yes:no?{name}yes:no! V2 errorn/an/an/an/an/an/an/an/an/aextended errorn/an/an/an/an/aall
1.42
n/an/an/a
Control Verb Argument $*MARK Insert the argument of the last backtracking control verb to be encountered during the matching process. Replacing a+(*:LEFT)|c+(*:RIGHT) with $*MARK in abc yields LEFTbRIGHT nonononoerrornoerrorerrornoerror10.21nonononononononoerror
Control Verb Argument $REGMARK Insert the argument of the last backtracking control verb to be encountered during the matching process. Replacing a+(*:LEFT)|c+(*:RIGHT) with $REGMARK in abc yields LEFTbRIGHT nonononoerrornoerrorerrornoYESerrornonononononononoerror
FeatureSyntaxDescriptionExampleJGsoft Python JavaScript VBScript XRegExp .NET Java ICU RE2 Perl PCRE2 PHP Delphi R Ruby std::regex Boost Tcl Oracle XPath