簡體   English   中英

正則表達式替換匹配所有而不是單個

[英]Regex Replace Matches All instead of single

我正在嘗試了解正則表達式替換方法。 我寫了一個函數,它應該在第一個大寫字母之前插入一個空格,該大寫字母前面沒有大寫字母。

var tmpDisplay = Regex.Replace(name, "([^A-Z ])([A-Z])", "$1 $2");

當我運行它時,它將替換所有未加上大寫字母的大寫字母。

我檢查了MSDN,它似乎沒有提到正則表達式替換字符串上的act全局而不是僅匹配第一種情況。

我怎樣才能替換單個值? 任何人都可以提供有關此問題的文檔嗎?

靜態Regex.Replace方法沒有max occurrence參數,但類實例具有:

var rx = new Regex(@"([^A-Z ])([A-Z])");
Console.WriteLine(rx.Replace("NamePeteParker", "$1 $2", 1)); // Replace just once
                                                       ^^

請參閱IDEONE演示

來自MSDN

Regex.Replace Method (String, MatchEvaluator, Int32)
在指定的輸入字符串中,將匹配正則表達式模式的指定最大字符串數替換為MatchEvaluator委托返回的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM