簡體   English   中英

刪除帶有 2 個字母后跟 2 個數字的字母數字

[英]remove alphanumeric with 2 alphabets followed by 2 digits

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

如何刪除以前 2 個字母開頭的單詞,然后是 2 位數字,而不是刪除超過 2 + 位數字的任何字母數字。

預期輸出:

"it is and ZZ100DD22"

此代碼僅刪除數字。 請幫助我獲得預期的輸出。

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

您可以使用

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

請參閱正則表達式演示 替代:

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM