我是在正則表達式之後,當有兩個或更多個重複的元素時,會刪除空白,只留下一個空格。連續多於一個時刪除多餘的空格
例如這行
The cow jumped over the moon
其具有多個空格在一些情況下分離的話會成爲
The cow jumped over the moon
我是在正則表達式之後,當有兩個或更多個重複的元素時,會刪除空白,只留下一個空格。連續多於一個時刪除多餘的空格
例如這行
The cow jumped over the moon
其具有多個空格在一些情況下分離的話會成爲
The cow jumped over the moon
嘗試此正則表達式:
[ ]+
,替換爲一個空間。
我通常這樣做的方式是反覆用一個替換兩個空格,直到找不到更多條目。這當然意味着多次傳遞和幾輪替換,每輪都會分配和垃圾回收一個字符串,但是我發現開銷比分析和執行正則表達式要少得多。即使有64個空間,也只需要7次修復。此外,典型的琴絃只有2-5個空間,所以它的工作速度更快。
string cleanedString = Regex.Replace(input, @"\s+", " ");
我一直用sed來做這個。
$ echo "The cow jumped over the moon" | sed -e 's/[ ]\+/ /g'
The cow jumped over the moon
在字符類方括號中有空格和製表符。我用'\'引用了'+',如果您的正則表達式引擎使用「+」表示「一個或多個」而不是文字「+」,則可能不需要。
這不會匹配標籤afaik – annakata 2009-06-01 12:39:19
\ s將是一個更好的代表性。 – Cerebrus 2009-06-01 12:55:19