你能帮助理解正则表达式的输出吗?我对低于 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
你能帮助理解正则表达式的输出吗?我对低于 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
out
是length 1L
具有属性的原子向量...
str(out)
atomic [1:1] 10
- attr(*, "match.length")= int 4
- attr(*, "useBytes")= logi TRUE
out
(try c(out)
to drop the attributes)的值10
描述了字符向量中与您的模式匹配的起始位置。attr( out , "match.length")
是
[1] 4
描述匹配的长度。
您的text
字符串是一个元素长,因此out
是一个元素长。试试regexpr("beau",rep(text,3))
。
从 的帮助页面regexpr
。您可以通过?regexpr
在 R 控制台中输入来获取它。
regexpr返回一个与文本长度相同的整数向量,给出第一个匹配的起始位置,如果没有,则返回 -1,具有属性“match.length”,一个整数向量,给出匹配文本的长度(或 -1 表示不匹配)。匹配位置和长度以字符为单位,除非使用了 useBytes = TRUE,当它们以字节为单位时。如果使用命名捕获,则还有其他属性“capture.start”、“capture.length”和“capture.names”。