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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.