I'm new in programming and need some help ;-)
how can I replace multiple patterns in a string
?
Example:
static void Main(string[] args)
{
string input = "this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj CCC";
string [] pattern = {"AAA", "BBB","CCC"};
string replacement = "XXX";
string result = null;
for (int i = 0; i < pattern.Length; i++)
{
result = Regex.Replace(input, pattern[i], replacement);
}
Console.WriteLine(result);
}
Want the result:
this is a test XXX one more test adakljd jaklsdj XXX sakldjasdkj XXX
But I get:
this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj XXX
thx for help in advance!
You don't need a regex, you simply can use Replace
:
string input = "this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj CCC";
string replaced = input.Replace("AAA", "XXX").Replace("BBB", "XXX")...
I suggest combining all patterns' parts ("AAA", ..., "CCC"
) with | ("or"):
string input = "this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj CCC";
string[] pattern = { "AAA", "BBB", "CCC" };
string replacement = "XXX";
string result = Regex.Replace(
input,
string.Join("|", pattern.Select(item => $"(?:{item})")),
replacement);
Console.WriteLine(result);
Outcome:
this is a test XXX one more test adakljd jaklsdj XXX sakldjasdkj XXX
I've turned each pattern part like BBB
into a group (?:BBB)
in case pattern part contains |
within itself
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