检查关键字之前的术语是否为数字

时间:2013-07-11 11:35:39

标签: regex r

给定一个字符串:

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

提前致谢。 -Simak

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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)