我有一个字符串向量:
s <- c('abc1', 'abc2', 'abc3', 'abc11', 'abc12',
'abcde1', 'abcde2', 'abcde3', 'abcde11', 'abcde12',
'nonsense')
我想要一个正则表达式只匹配以、或开头abc
和结尾的字符串。换句话说,正则表达式必须排除但不是,但不是,等等。3
11
12
abc1
abc11
abc2
abc12
我认为使用前瞻断言很容易做到这一点,但我还没有找到方法。有吗?
编辑:感谢下面的海报指出原始帖子中的严重歧义。
实际上,我有很多字符串。它们都以数字结尾:一些在 0 中,一些在 9 中,一些在中间的数字中。我正在寻找一个匹配所有字符串的正则表达式,除了那些以字母后跟 1 或 2 结尾的字符串。(正则表达式也应该只匹配那些以 开头的字符串abc
,但这是一个简单的问题。)
我尝试使用否定的前瞻性断言来创建这样的正则表达式。但我没有任何成功。
感谢所有回复和评论的人。受到你们几个人的启发,我最终使用了这个组合:grepl('^abc', s) & !grepl('[[:lower:]][12]$', s)
.