2
我试图在每个字符串中的一组分隔符之间替换所有特殊字符的所有实例。我相信解决方案将包括正则表达式匹配的一些组合,以检索每组分隔符和正则表达式之间的文本替换以用空格替换匹配内的每个违规字符。这是我到目前为止有:如何替换字符串中每组分隔符之间的任何特殊字符的所有实例?
string input = "***XX*123456789~N3*123 E. Fake St. Apt# 456~N4*Beverly Hills*CA*902122405~REF*EI*902122405~HL*1*1*50*0~SBR*P*18*******MA~NM1*IL*1*Tom*Thompson*T***MI*123456789A~N3*456 W. False Ave.*Apt. #6B~N4*Beverly Hills*CA*90210~DMG*";
string matchPattern = "(~N3\\*)(.*?)(~N4\\*)";
string replacePattern = "[^0-9a-zA-Z ]?";
var matches = Regex.Matches(input, matchPattern);
foreach (Match match in matches)
{
match.Value = "~N3*" + Regex.Replace(match.Value, replacePattern, " ") + "~N4*";
}
MessageBox.Show(input);
我期望的消息框,显示以下内容:
"***XX*123456789~N3*123 E Fake St Apt 456~N4*Beverly Hills*CA*902122405~REF*EI*902122405~HL*1*1*50*0~SBR*P*18*******MA~NM1*IL*1*Tom*Thompson*T***MI*123456789A~N3*456 W False Ave *Apt 6B~N4*Beverly Hills*CA*90210~DMG*"
显然,这是行不通的,因为我不能分配给内部的匹配值循环,但我希望你可以按照我的思维过程。任何不在分隔符之间的字符保持不变是很重要的。任何方向或建议都会有帮助。非常感谢!
这正是我所期待的!非常感谢! –