0

给定一个字符串:

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。我在这里做错了什么?希望有人能指出?

提前致谢。-西马克

4

2 回答 2

0

你的正则表达式是错误的。它说它必须包含 a.来匹配,而不是可选地包含 0 或 1 .。将其更改为

regexp_number =  "/^[0-9]+.?/";
于 2013-07-11T11:42:25.610 回答
0
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)
于 2013-07-11T11:51:31.907 回答