Regex 检查术语前置关键字是否为数字

Regex 检查术语前置关键字是否为数字,regex,r,Regex,R,给定一个字符串:3个设计特征,我试图检查“设计特征”之前的术语是否是一个数字,或者是否使用下面的数字。(数字可以是2或2。) score=0; str=3个设计特点 regexp_number=“/^[0-9]+./”; if(str_detect(y,regexp_number)==TRUE) { 分数=分数++; } 这将返回0。我做错了什么?希望有人能指出 提前谢谢。 -Simak您的正则表达式是错误的。它说它必须包含一个要匹配的,而不是可选地包含0或1。 换成 regexp_numbe

给定一个字符串:3个设计特征

,我试图检查“设计特征”之前的术语是否是一个数字,或者是否使用下面的数字。(数字可以是2或2。)

score=0;
str=

3个设计特点

regexp_number=“/^[0-9]+./”; if(str_detect(y,regexp_number)==TRUE) { 分数=分数++; }
这将返回0。我做错了什么?希望有人能指出

提前谢谢。
-Simak

您的正则表达式是错误的。它说它必须包含一个要匹配的
,而不是可选地包含0或1
。 换成

regexp_number =  "/^[0-9]+.?/";

w实际上是R代码吗?@agstudy
score=score++
str=

3设计

没有引号……看起来就像是R和伪代码的混合体me@dickoa的确我误读了,非常感谢。这有助于检查。
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)