我有以下数字列表:
5501, 534, 234, 550, 5500
我想选择除" 5501"之外的所有数字。和" 5500"并将其与stringr
中的R
包一起使用。
我没试好运行以下表达式:
^((?!550)\d)*$
答案 0 :(得分:1)
试试这个正则表达式:
^((?!5501|5500)[0-9]*)$
在上面的正则表达式中观察“Negative Lookahead”
命令?!
。
这将排除5501
和5500
希望这有帮助
答案 1 :(得分:0)
我们可以使用v1[grep("^.{3}$", v1)]
#[1] 534 234 550
v1[grep("^550[01]$", v1, invert=TRUE)]
#[1] 534 234 550
或更具体地说
v1 <- c(5501, 534, 234, 550, 5500)
{{1}}
答案 2 :(得分:0)
如果只想要消除那两个完全字符串(例如从不5502),则可以使用标准R子集,不需要使用正则表达式。
x <- c(5501, 534, 234, 550, 5500)
x <- x[x != 5500 & x != 5501]
如果您关心所有以550开头的值,而不是那些可能在其他地方使用550的值,那么您可以使用
x<-x[stringi::stri_sub(x, 1,3) != "550" | x == "550"]