什么都不匹配怎么办
How to match nothing
这对某些人来说可能是一个简单的问题:如何在 R 中使用正则表达式实际匹配任何内容?
假设您有一个字符串向量,如下所示:
q <- c("a", "12", "0", "", "300")
并且假设您还想匹配空字符串 ""
,该怎么做?
似乎可以合理地很好地匹配 ""
使用 grep
来匹配元字符 .
意思是 'any character',或者作为否定字符 class 的内容,以及参数 invert = T
来匹配匹配项的反义词:
grep(".", q, value = T, invert = T)
[1] ""
grep("[^.]", q, value = T, invert = T)
[1] ""
无论哪种情况,匹配都有效。但是,可以肯定的是,使用 invert
感觉像是一个方便的技巧,而不是一个严肃的正则表达式。在 R 中是否有另一种不匹配的方法?
一个选项是指定 ^
作为字符串的开头,然后 $
作为字符串的结尾
grep("^$", q)
或 nchar
which(nchar(q) == 0)
这对某些人来说可能是一个简单的问题:如何在 R 中使用正则表达式实际匹配任何内容? 假设您有一个字符串向量,如下所示:
q <- c("a", "12", "0", "", "300")
并且假设您还想匹配空字符串 ""
,该怎么做?
似乎可以合理地很好地匹配 ""
使用 grep
来匹配元字符 .
意思是 'any character',或者作为否定字符 class 的内容,以及参数 invert = T
来匹配匹配项的反义词:
grep(".", q, value = T, invert = T)
[1] ""
grep("[^.]", q, value = T, invert = T)
[1] ""
无论哪种情况,匹配都有效。但是,可以肯定的是,使用 invert
感觉像是一个方便的技巧,而不是一个严肃的正则表达式。在 R 中是否有另一种不匹配的方法?
一个选项是指定 ^
作为字符串的开头,然后 $
作为字符串的结尾
grep("^$", q)
或 nchar
which(nchar(q) == 0)