var keyList = new[] { "AccountKey", "PrivateKey", "APIKey", "DefectiveKeyGracefulExpiration" };
var multiplePatternMatching = string.Format("({0})", string.Join("|", keyList));
var keyRegex = string.Format(@"(?s)<([\s<]?{0}[\s<]*)>.*?</\1>", multiplePatternMatching);
And I have another regex:
var passwordRegex = @"(?si)<([^\s<]*password[^\s<]*)>.*?</\1>";
How to combine keyRegex
and passwordRegex
into one regex? I known that I need to use |
but I don't know how.
I'm trying to use |
like this:
var keyOrPasswordRegex = string.Format( @"(?s)<([\s<]?{0}[\s<]*)>.*?</\1>|(?si)<([^\s<]*password[^\s<]*)>.*?</\2>", multiplePatternMatching);
but it's doesnt work
Input:
<job xmlns:i="..." xmlns="...">
<password>asdfasdf</password>
<adminPassword>asd</adminPassword>
<AccountKey>asd</AccountKey>
<AccountKeyZ>asd</AccountKeyZ>
...</job>
Actual result:
<job xmlns:i="..." xmlns="...">
<></>
<></>
<AccountKey></AccountKey>
<AccountKeyZ>asd</AccountKeyZ>
...</job>
Expected result:
<job xmlns:i="..." xmlns="...">
<password></password>
<adminPassword></adminPassword>
<AccountKey></AccountKey>
<AccountKeyZ>asd</AccountKeyZ>
...</job>