0
使用gsub()
或RI substr()
由大寫字母標示零件想以下字符串分成使用GSUB
s <- c("IntAssisACTG", "IntFullPSYC", "IntAssocSOC")
分成三個子部分
(1)爲 「Int」 (2)的下字母集合,以「Int」之後的第一個大寫字母開頭,在下一個大寫字母之前結束,但長度不同(例如「Assis」,「Full」,「Assoc」) (3)其餘的字母,不同長度(例如「ACTG」,「PSYC」,「SOC」)
我希望將三個部分原樣返回,並將其作爲一個向量(例如, 「Int」「Assis」「ACTG」),我已經讀過gsub更適合我需要的東西,因爲它會分裂,而不會丟棄開始每個分割的角色。
我發現這個堆棧溢出
gsub("(?!^)(?=[[:upper:]])", " ", s, perl=T)
而且越來越接近我想除了什麼(i)其分裂所有首都的最後一段,而我需要他們在一個段(II)我不知道如何它的工作原理
任何幫助表示讚賞。
謝謝@Toto。我想我理解第二個捕獲組。它的內容是:「如果有一個或多個大寫字母,請將空間置於所引用段的前面。那是對的嗎?我不知道第一組「(?!^)」是如何工作的。你能解釋一下嗎? – llewmills
@llewmills:你是對的大號。 '(?!^)'被稱爲負反向保留,它是一個零長度的斷言,假設我們不在字符串的開頭。你會在這裏找到有用的信息:http://www.regular-expressions.info/lookaround html的 – Toto