Regex 用R中的正则表达式重新排列化学名称中的官能团

Regex 用R中的正则表达式重新排列化学名称中的官能团,regex,string,r,Regex,String,R,早些时候,我使用了下面的方法来移动化学结尾提到的官能团 名称(前面用一个或多个“,”)分隔): name <- "2,6-Octadien-1-ol, 3,7-dimethyl-, (E)-" paste(rev(strsplit(name, ", ")[[1]]), collapse = "") [1] "(E)-3,7-dimethyl-2,6-Octadien-1-ol" 在这种情况下,如果逗号不在数字(或“(“)”或“)”括号后,我想在逗号处断开。但是要实现这一点,我应该在st

早些时候,我使用了下面的方法来移动化学结尾提到的官能团 名称(前面用一个或多个“,”)分隔):

name <- "2,6-Octadien-1-ol, 3,7-dimethyl-, (E)-"

paste(rev(strsplit(name, ", ")[[1]]), collapse = "")
[1] "(E)-3,7-dimethyl-2,6-Octadien-1-ol"

在这种情况下,如果逗号不在数字(或“(“)”或“)”括号后,我想在逗号处断开。但是要实现这一点,我应该在strsplit中使用什么正则表达式呢?或者,如何指定一个在“,”或不在数字后面的逗号(或“(“)”括号)处中断的正则表达式?

name首先毫无意义地替换了一个空格。很抱歉,太快了-也有类似name将中间的一个改为:
name=gsub([a-z]|-),“\\1#,gsub(“,”,name))
name <- "2,6-Octadien-1-ol,3,7-dimethyl-,(E)-"
"(E)-3,7-dimethyl-2,6-Octadien-1-ol"
name <- "2,6-Octadien-1-ol, 3,7-dimethyl-, (E)-"
name = gsub("(\\D),","\\1#",gsub(" ","",name))
paste(rev(strsplit(name, "#")[[1]]), collapse = "")