Это простое регулярное выражение сделает это:
~(\w*[A-Z$])
Вы можете проверить это здесь:
http://regexhero.net/tester/
Выберите вкладку Заменитьat RegexHero.
Введите ~(\w*[A-Z$])
в качестве регулярного выражения.
Введите ~AP
в качестве строки замены.
Введите X(P)~AK,X(MV)~AK
в качестве целевой строки.
Вы получите это как вывод:
X(P)~AP,X(MV)~AP
В идиоме C # у вас будет что-то вроде этого:
class RegExReplace
{
static void Main()
{
string text = "X(P)~AK,X(MV)~AK";
Console.WriteLine("text=[" + text + "]");
string result = Regex.Replace(text, @"~(\w*[A-Z$])", "~AP");
// Prints: [X(P)~AP,X(MV)~AP]
Console.WriteLine("result=[" + result + "]");
text = "X(PH)~B$,X(PL)~B$,X(MV)~AP";
Console.WriteLine("text=[" + text + "]");
result = Regex.Replace(text, @"~(\w*[A-Z$])", "~USD$");
// Prints: [X(PH)~USD$,X(PL)~USD$,X(MV)~USD$]
Console.WriteLine("result=[" + result + "]");
}
}