我想从1到31匹配。我得到的最接近的是(1|2|3)?\d
。但这可以匹配32到39之间的值。
是否可以在正则表达式中执行此操作?
答案 0 :(得分:0)
请尝试这个(1 | 2)吗?\ d | 3(0 | 1)
答案 1 :(得分:0)
这是通过正则表达式执行此操作的一种方法:
^(?:[1-9]|[12][0-9]|3[01])$
您可以按如下方式将此模式与grepl
一起使用:
x <- c("1", "10", "25", "31", "0", "32", "100")
grepl("\\b(?:[1-9]|[12][0-9]|3[01])\\b", x)
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE
但是说实话,通常要做数字不等式比较通常是这里的方法:
x <- as.numeric(x)
x >= 1 & x <= 31
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE