检查字符串是否包含数字和破折号

Check if a string contain digits and dash

我正在尝试找到正确的正则表达式来 grepl 天气字符串只包含数字 [0-9] 和特殊字符“-”。

例如,

str1="00-25" #TRUE
str2="0a-2" #FALSE

我试过了

grepl("[^[:digit:]|-]",str2)
#[1] TRUE

想法?

您想检查字符串是否只有数字和 -。

要创建合奏,您需要使用“[]”,所以:

[0-9-]

现在您要检查字符串中的每个字符是否都在您创建的集合中,换句话说,您要开始(^) 和通过这个合奏完成($) :

^[0-9-]$

终于在变量中有1个或多个字符,所以我使用“+”:

grepl("^[0-9-]+$",str)