gsub从R中的向量中提取点前后的字符串?
请,我想使用gsub从该向量中提取字符串: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更符合逻辑,因
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按预期完成工作吗?