我在R中有一个数据文件,其中包含以下配置:
[53] "Name:"
[54] "John Brown"
对于文件中“Name”的每次出现,我只需要提取“John Brown”部分。该文件非常混乱。我需要一个能够提取所有名称的正则表达式,即在“Name:”之后给我一切,但不包括后续的引号。我担心,尽管通过正则表达式的例子,我找不到符合我的问题的例子。谢谢你的帮助。
答案 0 :(得分:0)
一些示例数据:
txt <- c("ignore this", "Name:", "James Brown", "American singer", "songwriter", "record producer",
"Name:", "Bessie Smith", "American blues singer")
“我们想要这个”:
txt[1 + grep("Name:", txt)]
# [1] "James Brown" "Bessie Smith"
如果找不到任何内容怎么办?
txt[1 + grep("name:", txt)]
# character(0)
我的单元测试员建议您可能想要考虑一些角落情况:
c("Name:", "Name:")
c("Name:", "")
(使用Filter(nzchar, ...)
轻松处理,具体取决于几项内容)c(..., "Name:")
(之后没有任何内容,目前会返回NA
)(更多测试可能有用,也许是为了捕捉c("Name:","Name:")
,但这只是我思考的单位测试者。