I need to remove the first specific word from a phrase (for instance Write) and return the remaining words with the first capitalized.
Write your letters in the sand => Your letters in the sand
I use this code
var test = Regex.Replace("Write your letter in the sand", "(^Write )(.)", "$2");
and I get
test == "your letter in the sand"
but I don't know how to capitalize the second captured group
CodePudding user response:
You can use
var text = "Write your letter in the sand";
var test = Regex.Replace(text, @"^\w \W (\w)", x => x.Groups[1].Value.ToUpper());
See the C# demo.
Here, ^\w \W (\w)
matches
^
- start of string\w
- one or more word chars\W
- one or more non-word chars(\w)
- Group 1: a word char.
The x => x.Groups[1].Value.ToUpper()
lambda expression takes the Group 1 value (the first char of the second word) and puts it back into the resulting string in place of matched text, after turning it to upper case.