给定一个字符串:
3 设计特点
,我正在尝试使用以下内容检查“设计功能”之前的术语是否为数字。(数字可以以 2 或 2 的形式存在。)score=0;
str = <P>3 Design Features</P>
regexp_number = "/^[0-9]+./";
if(str_detect(y,regexp_number) ==TRUE)
{
score=score++;
}
这返回 0。我在这里做错了什么?希望有人能指出?
提前致谢。-西马克
你的正则表达式是错误的。它说它必须包含 a.
来匹配,而不是可选地包含 0 或 1 .
。将其更改为
regexp_number = "/^[0-9]+.?/";
w <- "aghj 3 Design Features kjkl"
x <- "aghj 3. Design Features kjkl"
y <- "aghj c Design Features kjkl"
z <- "4 aghj c gn Features kjkl"
fun <- function(x) grepl("[[:digit:]]",
regmatches(x,
regexpr(".\\.?(?= Design Features)",x,perl = TRUE)))
fun(w)
[1] TRUE
fun(x)
[1] TRUE
fun(y)
[1] FALSE
fun(z)
[1] logical(0)