0
相同的字符我有一個字符串:正則表達式斯普利特 - 逃避我使用的分裂
string data = "SEQUENCE $FIRST$ THEN $SECOND$ AND FINALLY \\$12345";
我想用正則表達式用「$」字符就分手了。但是,我想使用\作爲轉義字符。
string[] sComponents = Regex.Split(data, "(\\$)", RegexOptions.ExplicitCapture);
通過運行上面的代碼,我會得到:
sComponents[0] = "SEQUENCE "
sComponents[1] = "FIRST"
sComponents[2] = " THEN "
sComponents[3] = "SECOND"
sComponents[4] = " AND FINALLY "
sComponents[5] = "12345"
但我想sComponents [4]包含$,如 「最後$ 12345」
什麼是最好的方式爲了達到這個目的,Regex在分裂時有一些類型的轉義字符嗎?或者在我用我自己的邏輯調用Regex Split之前,我必須手動處理這個問題?
基本上歸結爲,如果正則表達式看到「$」然後分裂,但如果它看到「\\ $」,那麼忽略它不會在這個位置分裂。
什麼是防止從分裂中的 '12345' 前的 '$' 出現的規則?事實是它在一個數字的前面,或者最後沒有對應的'$'? – md4 2014-09-19 17:20:45
我正在考慮使用\\,例如「SEQUENCE $ FIRST $ THEN $ SECOND $ AND FINALLY \\ $ 12345」 – Fylix 2014-09-19 17:22:39
@Fylix,你真的想要一個字符串數組,還是你想要替換像$ FIRST $和$ SECOND $與其他值,所以你最終得到一個字符串,用其他值替換這些東西? – aquinas 2014-09-19 17:46:12