R 中的正则表达式用于捕获后续引号内的信息
Regular expression in R to capture information inside subsequent quotation marks
我在 R 中有一个数据文件,例如以下配置:
[53] "Name:"
[54] "John Brown"
对于文件中每次出现的 "Name",我只需要提取 "John Brown" 部分。文件很乱。我需要一个将提取所有名称的正则表达式,即在 "Name:" 之后给我中间的所有内容,但不包括随后的引号。恐怕,尽管查看了正则表达式的示例,但我找不到符合我的问题的示例。感谢您的帮助。
一些示例数据:
txt <- c("ignore this", "Name:", "James Brown", "American singer", "songwriter", "record producer",
"Name:", "Bessie Smith", "American blues singer")
"We want this":
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:")
(之后没有,目前return NA
)
(更多的测试可能会有用,也许可以抓住 c("Name:","Name:")
,但这只是我认为的单元测试人员。
我在 R 中有一个数据文件,例如以下配置:
[53] "Name:"
[54] "John Brown"
对于文件中每次出现的 "Name",我只需要提取 "John Brown" 部分。文件很乱。我需要一个将提取所有名称的正则表达式,即在 "Name:" 之后给我中间的所有内容,但不包括随后的引号。恐怕,尽管查看了正则表达式的示例,但我找不到符合我的问题的示例。感谢您的帮助。
一些示例数据:
txt <- c("ignore this", "Name:", "James Brown", "American singer", "songwriter", "record producer",
"Name:", "Bessie Smith", "American blues singer")
"We want this":
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:")
(之后没有,目前returnNA
)
(更多的测试可能会有用,也许可以抓住 c("Name:","Name:")
,但这只是我认为的单元测试人员。