3.15. Replace Matches Reusing Parts of the Match
Problem
You want to run a search-and-replace that reinserts parts of the regex match back into the replacement. The parts you want to reinsert have been isolated in your regular expression using capturing groups, as described in Recipe 2.9.
For example, you want to match pairs of words delimited by an equals sign, and swap those words in the replacement.
Solution
C#
You can use the static call when you process only a small number of strings with the same regular expression:
string resultString = Regex.Replace(subjectString, @"(\w+)=(\w+)", "$2=$1");
Construct a Regex
object if you want to use the same regular expression with a large
number of strings:
Regex regexObj = new Regex(@"(\w+)=(\w+)"); string resultString = regexObj.Replace(subjectString, "$2=$1");
VB.NET
You can use the static call when you process only a small number of strings with the same regular expression:
Dim ResultString = Regex.Replace(SubjectString, "(\w+)=(\w+)", "$2=$1")
Construct a Regex
object if you want to use the same regular expression with a large
number of strings:
Dim RegexObj As New Regex("(\w+)=(\w+)") Dim ResultString = RegexObj.Replace(SubjectString, "$2=$1")
Java
You can call String.replaceAll()
when you process only one
string with the same regular expression:
String resultString = subjectString.replaceAll("(\\w+)=(\\w+)", "$2=$1");
Construct a Matcher
object if you want to use the same regular expression with a large
number of strings:
Pattern regex = Pattern.compile("(\\w+)=(\\w+)"); ...
Get Regular Expressions Cookbook, 2nd Edition 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.