我有以下帶字串的向量:
strings <- c("ABC0001", "ABC02", "ABC10", "ABC01010", "ABC11", "ABC011", "ABC0120")
"ABC0001" "ABC02" "ABC10" "ABC01010" "ABC11" "ABC011" "ABC0120"
期望的輸出:
[1] "ABC1" "ABC2" "ABC10" "ABC1010" "ABC11" "ABC11" "ABC120"
我的問題:字串中第一個整數之前的零的正則運算式模式是什么?
到目前為止,我已經嘗試過:
library(stringr)
str_replace(strings,'0 ', "")
這使:
[1] "ABC1" "ABC2" "ABC1" "ABC1010" "ABC11" "ABC11" "ABC120"
注意:ABC1位置 3 不需要。ABC10
我應該懷疑這可能很容易,但我無法理解。
我要學習正則運算式模式!
uj5u.com熱心網友回復:
這是一個基本的 R 選項,使用sub,帶有環視:
strings <- c("ABC0001", "ABC02", "ABC10", "ABC01010", "ABC11", "ABC011", "ABC0120")
output <- sub("(?<=.)0 (?=.)", "", strings, perl=TRUE)
output
[1] "ABC1" "ABC2" "ABC10" "ABC1010" "ABC11" "ABC11" "ABC120"
以下是所使用的正則運算式模式的解釋:
(?<=.) assert that some character precedes
0 match one or more zeroes
(?=.) assert that some character follows
該(?<=.)和(?=.)被稱為lookarounds。在這種情況下,他們確保0我們的目標不是在輸入值的最開始或最后。對于像 的輸入ABC110,我們希望輸出是ABC110,即不應洗掉最后的零。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/396615.html
上一篇:兩個節點之間的碰撞同時發生了兩次
下一篇:范圍正則運算式中的數字
