gsub从R中的向量中提取点前后的字符串?

gsub从R中的向量中提取点前后的字符串?,r,gsub,R,Gsub,请,我想使用gsub从该向量中提取字符串: x<-("Prayer: Lord. Have mercy on.") x你可以试着在\.\s*上拆分前面的祈祷词:词条 x如果需要分别获取这两个值,可以使用 x[1]“上帝” gsub(“^[^::]*:\\s*[^.]+\\.\\s*([^.]+).*”,“\\1”,x) ##=>[1]“宽恕” 请参阅,以及演示。无论您是否将sub或gsub与这些regexp一起使用,它们的工作原理都是一样的,尽管sub更符合逻辑,因

请,我想使用gsub从该向量中提取字符串:

x<-("Prayer: Lord. Have mercy on.")

x你可以试着在
\.\s*
上拆分前面的
祈祷词:
词条


x如果需要分别获取这两个值,可以使用

x[1]“上帝”
gsub(“^[^::]*:\\s*[^.]+\\.\\s*([^.]+).*”,“\\1”,x)
##=>[1]“宽恕”
请参阅,以及演示。无论您是否将
sub
gsub
与这些regexp一起使用,它们的工作原理都是一样的,尽管
sub
更符合逻辑,因为您只需要将整个字符串替换为第一个捕获组的值

细节

  • ^
    -字符串的开头
  • [^:::*
    -零个或多个字符,而不是
  • -冒号
  • \s*
    -零个或多个空格
  • [^.]+
    -一个或多个字符(点除外)
  • \。
    -一个点
  • \s*
    -零个或多个空格
  • ([^.]+)
    -捕获组1:除点以外的一个或多个字符
  • *
    -字符串的其余部分

非常感谢您。如果与gsub合作,这将非常有用。此外,输出中只需要一个术语(不是两个)。再次感谢您的进一步帮助。通过
sub
执行此操作似乎很困难。您无法使用
gsub
提取多个匹配项。此函数用于删除/替换找到的匹配项,并返回修改后的字符串(“字符向量”)。如果要使用两个不同的
gsub
操作获取两个子字符串,可以使用Yes。使用两种不同的gsub操作谢谢wiktor!是的。请你再帮我一个好吗。稍微复杂一点。信息:Requise。紧急和重要。皮埃尔:(安)11雅克(ct):45莫伊(m2):9.15平方米TP(PT CC):24/50我想把这两个论点提取在一起:11和24@Julie按预期完成工作吗?