Regex.Replace("a b c a b c", "a", "*")
返回
"* b c * b c"
是否有一种简单的方法可以只替换第一次出现,结果是
"* b c a b c"
找不到限制替换的RegExOption。特别是
Regex.Replace("a b c a b c", "a", "*", RegexOptions.Multiline)
Regex.Replace("a b c a b c", "a", "*", RegexOptions.Singleline)
没有任何区别 - 显然。但是没有更多的选择。
答案 0 :(得分:5)
Regex rgx = new Regex("a");
string result = rgx.Replace("a b c a b c", "*", 1); // * b c a b c
答案 1 :(得分:1)
使用捕获组和起始锚点。
Regex.Replace("a b c a b c", "^([^a]*)a", "$1*")
^([^a]*)
捕获第一个a
之前存在的所有字符。以上正则表达式中的以下a
仅匹配第一个a
。因此,通过将匹配的字符替换为组索引中存在的字符1加*
将为您提供所需的输出。