提取数据直到R中特定“文本”的第一次出现

时间:2018-04-04 14:39:36

标签: r

以下是示例数据。

ColumnA

  1. 911是加拿大的国家紧急号码.Kids Help Phone是一项全国性的24小时免费保密危机热线和咨询服务,适用于20岁以下的加拿大人。
  2. 112和199是塞浦路斯的国家紧急号码。塞浦路斯撒玛利亚人每天下午4点至12点可以使用,并且是保密的。可以拨打8000 7773与他们联系。
  3. 结果“句子直到所有行中national emergency number第一次出现”,如下所示:

    ColumnA

    1. 911是国家紧急号码
    2. 112和199是国家紧急号码
    3. 我试过了,但没有给出适当的结果:

      stri_extract(HelpLine$HelpLineNo, regex='[^national]*')->a
      stri_extract_first_regex(HelpLine$HelpLineNo, "^[^emergency]+")->a
      

1 个答案:

答案 0 :(得分:2)

stringr解决方案,假设您想要包含可选的“s”,如果有多个数字:

library(stringr)
str_extract(HelpLine$HelpLineNo,".*national emergency number[s]?") -> a
a
# [1] "911 is the national emergency number"           "112 and 199 are the national emergency numbers"

如果您想了解有关根据模式提取数据的更多信息,请查看regular expressions。当我在R:https://www.rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf

中做正则表达式时,我使用这个备忘单