I want to replace string which is a square bracket with another number. I am using regex replace method.
Sample input:
This is [test] version.
Required output (replacing "[test]" with 1.0):
This is 1.0 version.
Right now regex is not replacing the special character. Below is the code which I have tried:
string input= "This is [test] version of application.";
string stringtoFind = string.Format(@"\b{0}\b", "[test]");
Console.WriteLine(Regex.Replace(input, stringtoFind, "1.0"));
There may be any special character in input and stringtoFind variables.
My guess is that this simple expression might likely work:
Test
The expression is explained on the top right panel of this demo, if you wish to explore/simplify/modify it, and in this link, you can watch how it would match against some sample inputs step by step, if you like.
This seems to me to be the closest to exactly what you're asking for:
That outputs
This is 1.0 version of application.
.However, in this case, simply doing this would suffice:
It does the same thing.
You should escape the brackets and remove
\b
:Output
Important note
\b
does NOT match spaces.\b
matches the empty string at the beginning or end of a word. Maybe you were looking for\s
.Here is a Cheat Sheet you can use in the future https://www.rexegg.com/regex-quickstart.html#morechars
https://www.regexplanet.com/share/index.html?share=yyyyujzkvyr => Demo
You must account for two things here:
\
symbol that is best done usingRegex.Escape
method when you have dynamic literal text passed as a variable to regex\b
, because the meaning of this construct depends on the immediate context.What you may do is use
Regex.Escape
with unambiguous word boundaries(?<!\w)
and(?!\w)
:Note that if you want to replace a key string when it is enclosed with whitespaces use