Reputation: 383
It seems simple enough, right? Well, I don't know.
Here's the code I'm trying:
input = Regex.Replace(input, "\\", "\\\\\\");
However, I'm receiving an error,
ArgumentException was unhandled - parsing "\" - Illegal \ at end of pattern.
How do I do this?
Upvotes: 21
Views: 44563
Reputation: 21
I have tried all these examples, but without success. I had a "//" and I didn't want to change it. I only needed to change the "/"
This regex helped me:
string myString = "https://example.com/example/example/example";
string result = Regex.Replace(myString, @"(?<!/)/(?!/)", "//");
and I got - "https://example.com//example//example//example"
Upvotes: 1
Reputation: 61
I know it's too late to help you, maybe someone else will benefit from this. Anyway this worked for me:
text = text.Replace(@"\",@"\\");
and I find it even more simplier.
Cheers!
Upvotes: 6
Reputation: 1854
If you want to replace one backslash with two, it might be clearer to eliminate one level of escaping in the regular expression by using @"..."
as the format for your string literals, also known as a verbatim string. It is then easier to see that
string output = Regex.Replace(input, @"\\", @"\\");
is a replacement from \
to \\
.
Upvotes: 8
Reputation: 4492
If you intend to use the input in a regex pattern later, it can be a good idea to use Regex.Encode.
input = Regex.Escape(input);
Upvotes: 3
Reputation: 78487
var result = Regex.Replace(@"afd\tas\asfd\", @"\\", @"\\");
The first parameter is string \\ which is \ in regex.
The second parameter is not processed by regex, so it will put it as is, when replacing.
Upvotes: 4
Reputation: 30580
The first one should be "\\\\"
, not "\\"
. It works like this:
"\\"
.\
in a string.With regex, it's much easier to use a "verbatim string". In this case the verbatim string would be @"\\"
. When using verbatim strings you only have to consider escaping for the regex engine, as backslashes are treated literally. The second string will also be @"\\"
, as it will not be interpreted by the regex engine.
Upvotes: 26