R - 理解regexpr的输出结果

3

你能帮忙理解regexpr的输出吗?我只关心与文本位置有关的值,即下面的10。但是它显示了两个值,即10和4。如何仅捕获数字10。

这个输出是数字向量吗?

text<-"World is beautiful"
out<-regexpr("beau",text)
out
#[1] 10
#attr(,"match.length")
#[1] 4
#attr(,"useBytes")
#[1] TRUE
out[1]
#[1] 10
out[2]
#[1] NA
2个回答

2

out 是一个带有属性的长度为 1L 的原子向量...

str(out)
 atomic [1:1] 10
 - attr(*, "match.length")= int 4
 - attr(*, "useBytes")= logi TRUE
out的值为10(尝试c(out)以删除属性),它描述了字符向量中与您的模式匹配的起始位置。 attr(out,"match.length")[1] 4,它描述了匹配的长度。

您的text字符串只有一个元素,因此out也只有一个元素。尝试regexpr("beau",rep(text,3))


@user2882768 没关系。如果这个或者statquant的回答对你的问题很满意,你应该选择一个接受,以便将此问题标记为已回答。如果你愿意,可以在最喜欢的答案旁边点击小绿色勾号!有关更多信息,请参阅网站的关于常见问题解答部分。欢迎来到SO! - Simon O'Hanlon

0

regexpr的帮助页面中获取信息。您可以在R控制台中键入?regexpr来获取它。

regexpr返回一个整数向量,与文本长度相同,给出第一个匹配的起始位置,如果没有则返回-1,并带有属性"match.length",一个整数向量,给出匹配文本的长度(或无匹配时为-1)。匹配位置和长度以字符为单位,除非使用useBytes = TRUE,此时它们以字节为单位。如果使用命名捕获,则还有其他属性"capture.start"、"capture.length"和"capture.names"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接