如何从字符串中替换多个特殊字符

How to replace more than one special character from a string

我有一个字符串,如下所示。

 string s = @"Test1212ULL99|H|||F~~~
NTE|||      Reference Range~  Negative~  Elevated Antibody Level~~
FT1||||2015072100||NA|^^DMHC100^STDNULL99^I9
MSH|^~\&|Cnoss CA||||901834|P|2.4|||NE|NE|||||CALINX_1.3~
PID|2||MRN45161510^^^^PT~1860664CASANOVA AVE&820^^MONTEREY^CA^93940^^H||(831) 917-1541";

string replacementString = "\r";
 string result = Regex.Replace(s, @"~~\r", replacementString);

我必须替换行末尾的所有 ~ 符号,而不是行中间的 ~ 符号。例如,第 1 行包含三个 ~ 最后签到,第二行和第三行包含 2 和 1 ~ 最后签到。

任何人都可以告诉我如何实现这一目标吗? 任何帮助将不胜感激。

~+(?=[\r\n])

这会将字符串 only.Replace 末尾的 ~ 替换为 empty string

查看演示。

https://regex101.com/r/sS2dM8/13

简短而甜蜜。 (如果你只需要替换而不是捕获 ~

~+?$

这将只从行的最后而不是从中间删除所有 ~。也适用于多行字符串。

演示:https://regex101.com/r/cP8lG0/1

干杯:)