gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE)
#> [1] "5" "AB" "" ""
gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE)
#> [1] "5" "AB" "" ""
Yukarıdaki normal ifade , R'deki bir dizeden tüm önde gelen sıfırların nasıl kaldırılacağını açıklayan bu SO iş parçacığından gelir . Bu normal ifade sonucunda hem "000" hem de "0", "" biçimine dönüştürülür. Bunun yerine, son karakterin sıfır olduğu veya tek karakterin sıfır olduğu durumlar dışında, bir karakter dizesindeki tüm önde gelen sıfırları kaldırmak istiyorum.
"005" would become "5"
"0AB" would become "AB"
"000" would become "0"
"0" would become "0"
Bu diğer SO iş parçacığı istediğimi nasıl yapacağımı açıklıyor, ancak sözdizimini oldukça doğru bir şekilde aldığımı, R'deki çözümü uyguladığımı sanmıyorum Ve aşağıdaki 1. ve 2. çözüm arasındaki farkı gerçekten anlamıyorum ( eğer gerçekten çalıştılarsa).
gsub("s/^0*(\d+)$/$1/;", "", c("005", "0AB", "000", "0"), perl = TRUE) # 1st solution
# Error: '\d' is an unrecognized escape in character string starting ""s/^0*(\d"
gsub("s/0*(\d+)/$1/;", "", c("005", "0AB", "000", "0"), perl = TRUE) # 2nd solution
# Error: '\d' is an unrecognized escape in character string starting ""s/0*(\d"
İstediğimi elde etmek için R'de uygun regex nedir?
regex
çaylak. Modelinizle bu model arasındaki performans farkı (veya diğer tercihler) nedir^0*(.+)$
veya^0+(.+)$
?