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" "" ""
L'espressione regolare sopra è da questo thread SO che spiega come rimuovere tutti gli zeri iniziali da una stringa in R. Come conseguenza di questa espressione regolare sia "000" che "0" vengono trasformati in "". Invece, desidero rimuovere tutti gli zeri iniziali da una stringa di caratteri, ad eccezione dei casi in cui il carattere finale risulta essere zero o l'unico carattere è zero.
"005" would become "5"
"0AB" would become "AB"
"000" would become "0"
"0" would become "0"
Quest'altro thread SO spiega come fare ciò che voglio, ma non credo di ottenere la sintassi abbastanza corretta, applicando la soluzione in R. E non capisco davvero la distinzione tra la prima e la seconda soluzione di seguito ( se hanno davvero funzionato).
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"
Qual è la regex corretta in R per ottenere ciò che voglio?
regex
novizio. Qual è la differenza di prestazione (o altre preferenze) tra il tuo modello e questo^0*(.+)$
o^0+(.+)$
?