
This example uses the following code to replace text in the lines of a string.
private void btnGo_Click(object sender, EventArgs e) { try { Regex reg_exp = new Regex(txtPattern.Text); lblResult.Text = reg_exp.Replace( txtInput.Text, txtReplacementPattern.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
This code creates a Regex object, passing its constructor a regular expression pattern that will identify the text to replace. It calls the object’s Replace method, passing it the replacement pattern.
The trick lies in the search and replacement patterns. In this example, the search pattern is “(?m)^([^,]*), (.*)$”. The pieces of this expression have the following meanings:
Part | Meaning |
---|---|
(?m) | This is an option directive that indicates a multi-line string. This makes the ^ and $ characters match the beginning and end of a line rather than the beginning and end of the string. |
^ | Match the beginning of a line. |
([^,]*) | Match any character other than comma any number of times. This part is enclosed in parentheses so it forms the first match group. |
, | (A comma followed by a space.) Match a comma followed by a space. |
(.*) | Match any character any number of times. This part is enclosed in parentheses so it forms the second match group. |
\r | Match a carriage return. (In C# this isn’t part of the end of the line.) |
$ | Match the end of the line. |
The replacement pattern is “$2 $1”. This says to output whatever was matched in the second match group, a space, and then the first match group.
This example takes this text:
Archer, Ann Baker, Bob Carter, Cindy Deevers, Dan
And converts it into this:
Ann Archer Bob Baker Cindy Carter Dan Deevers




Rod,
First – Thank you for the excellent site with such interesting and useful examples!
Second – After building this example, I was not able to produce the same results that you describe in the post.
The last name (Deevers, Dan) is not followed by a carriage return so it does not match. I was able to match all four names (producing the result that you included in the post) with the following regex:
(?m)^([^,]*), ([^\r]*)(\r?)$
Anyway, thank you again for sharing your knowledge!
X
You’re absolutely correct! I didn’t notice the comma in the final line of output.
I’ve updated the example to fix it. Thanks for pointing this out!
Hello Rod,
Example a name: de Boer Rob with insertion de fails.
Regards Henk
Sorry Henk but I don’t understand what you mean. Can you give some more details?
Example First name Rob
Lastname de Boer after de space.
after go the name is the same
de Boer Rob not Rob de Boer
gr Henk
Dear Rod,
Sorry, Sorry, I forgot the comma.
My mistake, sorry again it works perfectly !!
greetings Henk