I have a list of special characters that includes ^ $ ( ) % . [ ] * + - ?
. I want put %
in front of this special characters in a string value.
I need this to generate a Lua script to use in Redis.
For example Test$String?
must be change to Test%$String%?
.
Is there any way to do this with regular expressions in C#?
In C#, you just need a Regex.Replace
:
var LuaEscapedString = Regex.Replace(input, @"[][$^()%.*+?-]", "%$&");
See the regex demo
The [][$^()%.*+?-]
character class will match a single character, either a ]
, [
, $
, ^
, (
, )
, %
, .
, *
, +
, ?
or -
and will reinsert it back with the $&
backreference in the replacement pattern pre-pending with a %
character.
A lookahead is just a redundant overhead here (or a show-off trick for your boss).
You can use lookaheads and replace with %
/(?=[]*+$?)[(.-])/
Regex Demo
(?=[]*+$?)[(.-])
Postive lookahead, checks if the character following any one from the altenation []
. If yes, substitutes with %
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With