[英]How to add number in the string according to upper case or lower case?
化學式(串)總是以特定的形式寫成,化學元素后跟一個數字,例如氧氣O 2,二氧化碳CO 2。 氯化鈉氯化鈉
如果一個元素可以用一個字母表示,則該字母為大寫字母,例如氧氣O
和碳C
一些元素用2個字母顯示,只有第一個字母是大寫字母,例如鈉Na
。
所以元素用一個或兩個字母表示,只有兩種情況。
您可以看到,如果元素的數量為1,則不會在其后寫入數字1。
我想要做的是在這些元素后面添加1。
我的示例數據是
strings <- c("O2", "CO2", "NaCl")
我想得到的是:
strings_new <- c("O2", "C1O2", "Na1Cl1")
在編程語言中,存在具有特定格式的字符串。 大寫字母或一個大寫字母和一個小寫字母跟隨一個數字。 如果缺少一個字母后面的數字,並且這封字母是大寫的,並且后面的字母也是大寫字母,則1將在此字母后面插入。 如果這封信是大寫字母,但背后的字母是小寫字母,則在小寫字母后面插入1。
非常感謝你的幫助。
您可以使用此正則表達式匹配大寫字母(對於C
)或大寫字母可選地后跟一個小寫字母(以支持Na
或Cl
)而不是后跟數字,這意味着它需要附加1
([A-Z][a-z]?)(?!\d)
並將其替換為\\11
看看這個R代碼演示,
strings <- c("O2", "CO2", "NaCl")
gsub("([A-Z][a-z]?)(?!\\d)","\\11", strings, perl = TRUE)
打印,
[1] "O2" "C1O2" "Na1Cl1"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.