我想將以下代碼從Java轉換爲C#。這個Java到C#的轉換有什麼問題?
// Replace 0 0 0 0; with 0.
css = css.replaceAll(":0 0 0 0(;|})", ":0$1");
我作爲轉換...
var foo = new Regex(":0 0 0 0(;|})", RegexOptions.IgnoreCase).Replace(foo, "XXXXXXXX");
這編譯,但是當我運行這對下面的代碼無法正常工作......
foo = "a {background-position: 0 0 0 0;}\nb {BACKGROUND-POSITION: 0 0;}"
但如果我改變正則表達式爲: -
var foo = new Regex("0 0 0 0", RegexOptions.IgnoreCase).Replace(foo, "XXXXXXXX");
它確實正確地改變了結果。
現在,你一直在說之前,這是一個正則表達式的問題,而不是Java到C#轉換,問題我想作一個假設,正則表達式是有效的,因爲it's being used in the following (well known/popular) project與通過相應的單元測試。 Another example of this code as javascript它編碼像...
// Replace 0 0 0 0; with 0.
css = css.replace(/:0 0 0 0(;|\})/g, ":0$1");
注意第一個參數缺少的引號?所以我想知道如果我還沒有正確地將Java轉換爲C#。
該編輯顯示了爲什麼發佈簡短但完整的程序是有用的,那麼您的發佈代碼中就不會出現任何錯誤,這些錯誤不在您的真實代碼中,因爲您將擁有直接剪切和粘貼。 – 2010-11-18 06:30:33