我试图了解正则表达式替换方法。我写了一个函数,它应该在第一个大写字母之前插入一个空格,该大写字母前面没有大写字母。
var tmpDisplay = Regex.Replace(name, "([^A-Z ])([A-Z])", "$1 $2");
当我运行它时,它会替换所有未加上大写字母的大写字母。
我查了MSDN并且似乎并没有提到正则表达式替换了字符串上的act全局而不是仅匹配第一种情况。
我怎样才能替换单个值?任何人都可以提供有关此问题的文档吗?
答案 0 :(得分:7)
静态Regex.Replace
方法没有max occurrence参数,但类实例有:
var rx = new Regex(@"([^A-Z ])([A-Z])");
Console.WriteLine(rx.Replace("NamePeteParker", "$1 $2", 1)); // Replace just once
^^
请参阅IDEONE demo
来自MSDN:
Regex.Replace Method (String, MatchEvaluator, Int32)
在指定的输入字符串中,将匹配正则表达式模式的指定的最大字符串数替换为MatchEvaluator委托返回的字符串。