繁体   English   中英

R 正则表达式 / grep / grepl 用于字母后跟破折号和数字

[英]R regex / grep / grepl for letters followed by a dash and numbers

我正在尝试找到正确的 grep 表示法来识别具有这种模式的字符串:任意数量的字母后跟破折号 (-),后跟任意数量的数字。 例如, ABC-123适合,而123-ABCA1-B2则不适合。

我试过grepl('[[A:Za:z]]\\-[[0:9]]','ABC-123')但没有得到正确的结果。

有什么建议么?

我们可以将范围 ( : ) 更改为-而不是[[ 在模式中,我们还分别为字符串的开始和结束指定了^$ 字母和数字的+指定一个或多个...

grepl("^[A-Za-z]+-[0-9]+$", str1)
#[1]  TRUE FALSE FALSE

或者,如果我们想使用[[

grepl("^[[:alpha:]]+-\\d+$", str1)
#[1]  TRUE FALSE FALSE

数据

str1 <- c("ABC-123", "123-ABC", "A1-B2")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM