a="1-B*(0.5+c1)+B**2*(-c2+0.5*c1)+0.5*c3*B**3"
我想将上面的字符串细分为
B, -(0.5+c1), B**2, (-c2+0.5c1), B**3, 0.5*c3
使用R.任何建议?
答案 0 :(得分:1)
虽然不完全是您想要的输出,但以下内容非常接近,可能有助于您解决问题:
a <- "1-B*(0.5+c1)+B**2*(-c2+0.5*c1)+0.5*c3*B**3"
b <- gsub("**", "^", a, fixed = TRUE) # Replace "**" with "^" to simply the regex
ans <- unlist(strsplit(b, '\\([^)]*\\)(*SKIP)(*F)|\\*|\\+', perl = TRUE))
print(ans)
#[1] "1-B" "(0.5+c1)" "B^2" "(-c2+0.5*c1)" "0.5" "c3"
#[7] "B^3"
有关使用的正则表达式的更多信息,请参见here。
您可以使用"^"
轻松将"**"
更改回gsub
。
我认为没有简单的方法将B
的负号附加到系数上。