4
最近這裏一個R問題被mrdwab回答,它使用了一個非常酷的正則表達式(LINK)。我喜歡響應,但不能概括它,因爲我不明白髮生了什麼(我愚蠢的提供了不同的數值,但沒有真正產生任何有用的東西)。有人能夠逐一打破正則表達式並解釋發生了什麼?解釋這個R正則表達式
x <- c("WorkerId", "pio_1_1", "pio_1_2", "pio_1_3", "pio_1_4", "pio_2_1",
"pio_2_2", "pio_2_3", "pio_2_4")
gsub("([a-z])_([0-9])_([0-9])", "\\1_\\3\\.\\2", x) #Explain me please
在此先感謝您。
第一部分真的很有用,它尋找一個字符_#_#。現在你可以添加你對'\\ 1 \\\ 3 \\。\\ 2'的解釋嗎? – 2012-04-15 16:47:03
@TylerRinker這是重新排序的部分,他們被稱爲「反向引用」。第一個括號(這裏'([az])'的內容存儲在'\ 1'中,第二個的內容存儲在'\ 2'中,第三個存儲在'\ 3'中 – stema 2012-04-15 16:53:07
Thanks @Stema !我也更新了答案以便嘗試和澄清,另外值得一提的是'.':在(大多數)正則表達式語言中,'.'將會匹配任何東西,轉義它會讓它呈現爲。 .well..just a dot。 – rjz 2012-04-15 16:55:20