返回字符串中两个字符之间的值

时间:2019-03-27 16:58:20

标签: r regex substring

我正在尝试从Word文档中提取一种形式的值,以便可以将它们制成表格。我使用了反词包将.doc转换为字符串,现在我想根据文档中的标记提取值。

例如

example<- 'CONTACT INFORMATION\r\n\r\nName:  John Smith\r\n\r\nphone:  XXX-XXX-XXXX\r\n\r\n' 
Name<- grep('\nName:', example, value = TRUE)
Name
  

当我希望只返回“ John Smith”时,此代码返回整个字符串。

是否可以在grep()上添加结束标记?我也尝试过str_extract(),但在将模式格式化为正则表达式时遇到了问题

2 个答案:

答案 0 :(得分:3)

我们可以使用gsub删除包含Name:的子字符串,并在\r之后的那些字符之后,通过匹配模式并用空格(""代替)

gsub(".*Name:\\s+|\r.*", "", example)
#[1] "John Smith"

答案 1 :(得分:1)

我们还可以使用:

strsplit(stringr::str_extract_all(example,"\\\nName:.*",simplify = T),":  ")[[1]][2]
#[1] "John Smith"