在R中提取以标点符号开头和结尾的文本

在R中提取以标点符号开头和结尾的文本,r,regex,R,Regex,我想使用RStudio提取两个标点之间的一组字符串 我尝试使用str_extract命令,但每当我尝试使用锚点(^表示起始字符,$表示结束字符)时,都失败了 以下是示例问题: > text <- "Name : Dr. CHARLES DOWNING MAP ; POB : London; Age/DOB : 53 years / August 05, 1958;" 但它似乎过于冗长,不够灵活 我只想提取“查尔斯·唐宁博士地图” 有人能帮我解决问题吗 我可以告诉正则表达式以“Nam

我想使用RStudio提取两个标点之间的一组字符串

我尝试使用str_extract命令,但每当我尝试使用锚点(^表示起始字符,$表示结束字符)时,都失败了

以下是示例问题:

> text <- "Name : Dr. CHARLES DOWNING MAP ; POB : London; Age/DOB : 53 years / August 05, 1958;"
但它似乎过于冗长,不够灵活

我只想提取“查尔斯·唐宁博士地图”

有人能帮我解决问题吗

我可以告诉正则表达式以“Name:”之后的任何非空格字符开始,并在“POB”之前结束吗?

这似乎有效

> gsub(".*Name :(.*) ;.*", "\\1", text)
[1] " Dr. CHARLES DOWNING MAP"

str\u匹配

stringr::str_match(text, "^Name : (.*) ;")[, 2]
#[1] "Dr. CHARLES DOWNING MAP"
[,2]
用于从捕获组获取内容


还有一个
qdapRegex::ex_between
来提取左右标记之间的字符串

qdapRegex::ex_between(text, "Name : ", ";")[[1]]
#[1] "Dr. CHARLES DOWNING MAP"

打败我吧。我的
\\s+
就在冒号后面。
qdapRegex::ex_between(text, "Name : ", ";")[[1]]
#[1] "Dr. CHARLES DOWNING MAP"