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

标签 r regex substring

我正在尝试从 Word 文档中提取表单中的值,以便可以将它们制成表格。我使用 antiword 包将 .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

This code returns the whole string when I'd like it to just return 'John Smith'.

有没有办法向 grep() 添加结束标记?我也尝试过 str_extract() 但在将模式格式化为正则表达式时遇到问题

最佳答案

我们可以使用gsub通过匹配模式来删除包含Name:的子字符串以及在\r之后开始的那些字符并替换为空白 ("")

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

关于返回字符串中两个字符之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382705/

相关文章:

r - 无法在 Sublime Text 中的 REPL R 中运行选定的行

r - 在数据框创建的循环中,使用 data.table 包中的 set() 将值从一个数据框复制并粘贴到另一个数据框

java - 保留文件 IO 中的换行符和间距

python - 正则表达式。 Python。保留一组并替换字符串中的其他组

c# - 如何从此字符串中提取子字符串?

java - 对总和进行子串

r - 无法将 R 数据框追加到现有 Excel 中而不覆盖

r - Shiny 的文件输入接受所有文件类型

c# - 正则表达式 C# IsMatch()

regex - 从 tcl 中的方括号中提取字符串