r-删除带有2个字母和2个数字的字母数字


a <- c("it is ZZ10ASDJN123 and ZZ100DD22")

我如何删除以前两个字母开头,然后是两个数字开头的单词并且不删除任何超过后面的2+数字的字母数字。

预期输出:

"it is and ZZ100DD22"

此代码仅删除数字。请帮我获得预期的产出。

gsub('[[:digit:]]+', '', a)

您可以使用

gsub("\s*\b[A-Za-z]{2}\d{2}(?!\d)\w*\b", "", a, perl=TRUE)

请参阅regex演示。另一种选择:

gsub("\s*\b[A-Za-z]{2}\d{2}[A-Za-z_]\w*\b", "", a)

详细信息

  • s*-0个或多个空白字符
  • b-一个词的边界
  • [A-Za-z]{2}-两个ASCII字母(使用p{L}匹配任何Unicode字母(
  • d{2}-两位数
  • (?!d)-右边不能有数字
  • w*-0个或多个字母、数字或下划线
  • b—字边界

在正则表达式的开头添加(*UCP),使其完全支持Uniocde。

R演示:

a <- c("it is ZZ10ASDJN123 and ZZ100DD22")
gsub("\s*\b[A-Za-z]{2}\d{2}(?!\d)\w*", "", a, perl=TRUE)
## => [1] "it is and ZZ100DD22"

最新更新