更換多減一個減有一個字符串通過正則表達式
str = "test--removing-----minus-";
試圖通過
str = Regex.Replace(str, @"\-*", @"-");
更換,但我得到
"t-e-s-t--r-e-m-o-v-i-n-g--m-i-n-u-s-";
更換多減一個減有一個字符串通過正則表達式
str = "test--removing-----minus-";
試圖通過
str = Regex.Replace(str, @"\-*", @"-");
更換,但我得到
"t-e-s-t--r-e-m-o-v-i-n-g--m-i-n-u-s-";
*
比賽0以上先前模式的匹配。使用{2,}
匹配2 or more
匹配。
而-
不需要轉義。
str = Regex.Replace(str, @"-{2,}", @"-");
我的第一個想法是,它會更簡潔,只是說「一個或多個」,但後來我意識到,可能會使正則表達式變成'「 - +」'......並且在這之前不需要'@'字符串。 – Chris
您的代碼將是
str = Regex.Replace(str, @"\-+", @"-");
OR
str = Regex.Replace(str, @"\-{1,}", @"-");
*
使得正則表達式的貪婪,它代表零次或多次。所以它把-
置零。使用{1,}
相匹配的字符-
的問題是,*
比賽零或多個字符,這意味着它的字母之間的匹配一次或多次出現。
將其更改爲+
這意味着一個或更多。
我很難相信你會在你的輸出中加上一個字母'b' – Sayse
複製粘貼錯誤。謝謝。固定! :) – podeig