試圖做在一個字符串一些正則表達式匹配和替換,從而使所有符號,單引號和空格字符與短劃線代替更換任何兩場的C#正則表達式:「 - 」具有相同值
.. 。和
將所有重複的破折號替換爲單個破折號。
這就是我正在嘗試,但它不工作,因爲重複的破折號不被替換。任何幫助表示讚賞和感謝。
Regex.Replace(mystring, "([' &])|([-]{2,})", "-")
試圖做在一個字符串一些正則表達式匹配和替換,從而使所有符號,單引號和空格字符與短劃線代替更換任何兩場的C#正則表達式:「 - 」具有相同值
.. 。和
將所有重複的破折號替換爲單個破折號。
這就是我正在嘗試,但它不工作,因爲重複的破折號不被替換。任何幫助表示讚賞和感謝。
Regex.Replace(mystring, "([' &])|([-]{2,})", "-")
試試這個(看起來更簡單)。我假設你從來不想在結果中使用「 - 」。
string orig = "12467&89- 1&2467'89 12'46789 12467--89";
Regex regex = new Regex("[&' -]+");
string newString = regex.Replace(orig, "-");
輸出:
12467-89-1-2467-89-12-46789-12467-8
謝謝詹姆斯,這是一個很大的幫助。 – larryq 2012-07-25 14:42:57
這個正則表達式應該工作:
你只需要做的任務:
mystring = Regex.Replace(mystring, "([' &])|([-]{2,})", "-");
字符串是不可改變的,還記得嗎?
謝謝邁克爾。如果我以這個調用爲例,我仍然在連續得到兩個破折號:string mystring = Regex.Replace(「hi& - 6-」,「(['&])|([ - ] {2,})」 ,「 - 」); – larryq 2012-07-24 23:34:30
是的,因爲您的正則表達式不會將連字符和帶連字符的單引號組合在一起。如果你的意圖是你的結果字符串沒有雙連字符,那麼在James的答案中使用正則表達式。 – 2012-07-24 23:40:57
這可能會更好地說, 「符號,單引號和空格字符」 不是 「和」, 「'」。後者非常難以閱讀。 – 2012-07-24 23:21:14
我們可以得到一個不工作的字符串樣本嗎? – 2012-07-24 23:24:01