簡體   English   中英

如何根據大寫或小寫在字符串中添加數字?

[英]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 )或大寫字母可選地后跟一個小寫字母(以支持NaCl )而不是后跟數字,這意味着它需要附加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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM