我试图匹配以:
开头的模式i%_%_%_%_c$_p$
其中
% is a number with 1 to 3 digits
$ is a 2-digit number
Other characters are literal
示例I'试图解决:
ex <- 'i192_168_10_1_c01_p89_some_other_stuff'
grepl('some_pattern', ex)
我已经走到了这一步:
grepl('^i[0-9]{1-3}', ex)
TRUE
但是当我尝试在下一组数字之前加入下划线时,我得到:
grepl('^i[0-9]{1-3}_', ex)
FALSE
我已经尝试过我在搜索时发现的各种其他方式,但似乎没有任何一种方法可以帮助我理解这一点,尽管看起来它应该是一个简单的匹配。然而,我对正则表达式缺乏经验。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
试试这个:
^i(?:\d{1,3}_){4}c\d{2}_p\d{2}
在此处查看正则表达式的详细信息(使用您提供的示例):https://regex101.com/r/iF1jN9/1
ex <- 'i192_168_10_1_c01_p89_some_other_stuff'
grepl('^i(?:\\d{1,3}_){4}c\\d{2}_p\\d{2}', ex)
# [1] TRUE
我不知道你是否想要匹配下一步:
_some_other_stuff
如果是这种情况,您可以在最后添加.*$
到正则表达式。
希望这有帮助!