【发布时间】:2019-03-28 16:28:53
【问题描述】:
我无法提取/ 之前和之后的字符串。
x <- c("maximusa/b=5/1","maximusa/b=-4/1","maximusa/b=3/-2")
before_slash=sub(".*=(\\d+).*","\\1", x, perl = TRUE)
给了
"5" "maximusa/b=-4/1" "3"
然后
after_slash=sub("^.*\\/(d+)","\\1", x, perl = TRUE)
给予
"maximusa/b=5/1" "maximusa/b=-4/1" "maximusa/b=3/-2"
OTH,预期输出
在斜线 5 -4 3 之前
斜线后 1 1 -2
我怎样才能得到预期的输出?
谢谢解答,
我想再添加一个条件来提取字符串
假设我们有这样的字符串。
与 OP 一样,我们如何使用 + 符号提取并忽略括号? @mob 的当前解决方案给出了
x <- c("maximusa/b=(5/+1)","maximusa/b=(-4/1)","maximusa/b=(+3/-2)")
after_slash=sub("^.*/(\\d+)","\\1", x, perl = TRUE)
> after_slash
[1] "maximusa/b=(5/+1)" "1)" "maximusa/b=(+3/-2)"
和
before_slash=sub(".*=(-?\\d+).*","\\1", x, perl = TRUE)
> before_slash
[1] "maximusa/b=(5/+1)" "maximusa/b=(-4/1)" "maximusa/b=(+3/-2)"
我尝试了一些,但没有运气!
【问题讨论】:
-
@mob 我编辑了问题标题。谢谢