Regex Str_提取不工作
我正在尝试从以下字符中提取第一个时间戳: “当2015年11月14日美国东部夏令时上午11:56至下午12:00” 我有一个完整的列表,它们是向量,根据需要Regex Str_提取不工作,regex,r,stringr,Regex,R,Stringr,我正在尝试从以下字符中提取第一个时间戳: “当2015年11月14日美国东部夏令时上午11:56至下午12:00” 我有一个完整的列表,它们是向量,根据需要 > is.vector(data$description) [1] TRUE > is.vector(data$info) [1] TRUE >str_extract(data$info, "\\@ [0-9]+:[0-9]{2}") Error in stri_extract_first_regex(string, p
> is.vector(data$description)
[1] TRUE
> is.vector(data$info)
[1] TRUE
>str_extract(data$info, "\\@ [0-9]+:[0-9]{2}")
Error in stri_extract_first_regex(string, pattern, opts_regex = attr(pattern, :
argument `str` should be a character vector (or an object coercible to)
我意识到我的正则表达式在第一次提取时并不完全正确。但在这一点上,它不会提取任何东西。我不确定我在这里做错了什么。非常感谢您的帮助。目前还不清楚我们是只需要“HH:MM”部件还是同样需要
AM/PM
。如果这只是为了在@
后面加一个空格后提取'HH:MM',我们可以使用regex lookarounds((?数据向量似乎有问题。函数在您提供的字符串上正常工作:
x <- "WHENSEPTEMBER 14, 2015 @ 11:56 AM - 12:00 PM EDT"
x
[1] "WHENSEPTEMBER 14, 2015 @ 11:56 AM - 12:00 PM EDT"
str_extract(x, "\\@ [0-9]+:[0-9]{2}")
[1] "@ 11:56"
x您能发布输出dput(数据)吗,因为我尝试此操作时得到“@11:56”。请听取反馈并提供dput(数据)或str(数据).如果你仔细阅读is.vector,我想你会意识到它误导了你。str
是一个很好的朋友,他透露了很多信息。你有没有str
-ed数据
?你能发布str()
您的数据,已经请求了两次?如果没有可复制的示例,这是无法解决的。我投票关闭了。您使用的是stringi软件包,而我使用的是stringr软件包。然而,当我使用您的正则表达式时,这不起作用。我不担心正则表达式,我担心的是函数根本不起作用并将显示在question@user3859248对不起,我弄错了。但是,stringr
是string
i的包装器。顺便说一句,如果您使用的是stringr,您不需要指定
regex=`。它对我有效。@user3859248 BTW,我正在r3.2.2上使用stringr\u 1.0.0
。
k你,是的,所以我认为问题会一直存在,好像我没有真正的向量,就像我想的那样。谢谢你的帮助,你的正则表达式提取了我想要的东西,现在可以工作了,谢谢你!@user3859248谢谢你的反馈。
library(stringr)
str_extract(v1, "(?<=\\@ )[0-9]+:[0-9]{2}")
#[1] "11:56"
v1 <- "WHENSEPTEMBER 14, 2015 @ 11:56 AM - 12:00 PM EDT"
x <- "WHENSEPTEMBER 14, 2015 @ 11:56 AM - 12:00 PM EDT"
x
[1] "WHENSEPTEMBER 14, 2015 @ 11:56 AM - 12:00 PM EDT"
str_extract(x, "\\@ [0-9]+:[0-9]{2}")
[1] "@ 11:56"