我不擅长使用正则表达式,所以这就是我的问题...... 我有这个字符串
# 32 #asd #31223 # asdf
我需要得到这个:
# 32 Nasd #31223 N asdf
让我解释一下:
1.-我需要删除2个或更多单个空格,我认为解决了:
Regex.Replace( RemoveDiacritics(text.ToUpper().Trim()), @"[ ]{2,}", @" ", RegexOptions.None);
2.-之后,如果正则表达式找到一个#,它需要检查下一个字符,如果它是一个数字,它没关系,但如果#的下一个字符是一个字母,我需要替换一个字母N。
你能帮我解决第二个要求吗?
谢谢!
答案 0 :(得分:1)
我会两次通过。
第一遍:
var normalized = Regex.Replace(inputStr, @"[\s]{2,}"," ");
第二遍:
var nReplaced = Regex.Replace(normalized , @"#(?!\s*\d)", "N");
第二个正则表达式只是使用负面预测来查找#
后跟
非数字,如果有,则将其替换为N
。
答案 1 :(得分:0)
var result = Regex.Replace("# 32 #asd #31223 # asdf", @"[\s]{2,}"," ",RegexOptions.None);
result = Regex.Replace(result, @"#(\D)", new MatchEvaluator((m)=>
{
return "N" + m.Groups[1].Value;
}));