我有一個長的字符串S和一個字符串到字符串的映射M,其中M中的鍵是S上的正則表達式匹配的結果。我想要做一個find和 - 替換爲S,其中,每當來自同一個正則表達式的匹配中的一個匹配恰好是M中的一個密鑰K時,我將其替換爲其值M [K]。Regex在另一個正則表達式的匹配結果中使用條件
爲了做到這一點,我想我需要在正則表達式中訪問正則表達式匹配的結果。如果我嘗試在正則表達式之外存儲匹配結果並測試相等性,我無法進行替換,因爲我不知道匹配的位置。我如何完成我的目標?
例子:
S = "abcd_a", regex = "[a-z]", M = {a:b}
結果: 「bbcd_b」,因爲正則表達式將匹配一個的和用B的
S = "abcd_a", regex = "[a-z]*", M = {a:b}
結果替換它們: 「abcd_b」,因爲正則表達式將匹配「abcd」(但不能替換它,因爲它不完全是「a」)和最後的'a'(它將替換它,因爲它完全是「a」)
你使用任何編程語言或任何編輯器? – 2016-03-05 05:01:23
一些編程語言在其正則表達式API中內置了該功能,但不是全部。如果你沒有使用其中的一個,你必須編寫一些代碼,比如[ccf did](http://stackoverflow.com/a/35810582/20938)。那麼,你到底在使用什麼? –
我正在使用Java。我的編輯是崇高的,儘管Java將會進行尋找和替換,而不是編輯。 – Travis