【发布时间】:2020-06-16 19:43:18
【问题描述】:
对于某些人来说,这可能是一个简单的问题:您如何在 R 中使用正则表达式来实际匹配任何内容? 假设你有一个这样的字符串向量:
q <- c("a", "12", "0", "", "300")
再假设你想匹配空字符串"",该怎么做呢?
似乎可以合理地匹配"" 使用grep 来匹配元字符. 意思是“任何字符”,无论是作为这样的还是作为否定字符类的内容,以及参数invert = T 来匹配比赛的反面:
grep(".", q, value = T, invert = T)
[1] ""
grep("[^.]", q, value = T, invert = T)
[1] ""
在任何一种情况下,匹配都有效。但是,可以肯定的是,使用invert 感觉像是一个方便的技巧,但不像是一个严肃的正则表达式。在 R 中是否有另一种匹配任何内容的方法?
【问题讨论】:
-
我不确定你想做什么,但
.*会匹配你所有的输入 -
metchars 是类中的文字,所以
[^.]表示不是点 -
例如,
nzchar...!nzchar(q)可以替代正则表达式。
标签: r regex regex-negation