2

Is it possible using Regex.Replace to match a string, but only replace a portion of that matched string? Some way to mark part of the string that should be replaced with the replacement text parameter?

1 Answer 1

5

You can use groups to insert parts of the original string, or you can use lookbehind and lookahead.

Examples

Using Groups:

someString = Regex.Replace(someString, @"(before)content(after)", "$1new content$2");

Using lookaround:

someString = Regex.Replace(someString, @"(?<=before)content(?=after)", @"new content");
Sign up to request clarification or add additional context in comments.

4 Comments

Looking forward to the examples :)
Works but instead of \1 you need $1
@SLaks: Why do you have the ?<= and the ?=, without them everything works perfect. With them it doesn't work.
@Winforms: Those are lookaround assertions. It works for me: Regex.Replace("abc", @"(?<=a)b(?=c)", "q") prints aqc.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.