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" "" ""
上記の正規表現は、Rの文字列からすべての先行ゼロを削除する方法を説明するこのSOスレッドからのものです。この正規表現の結果として、「000」と「0」は両方とも「」に変換されます。代わりに、最後の文字が偶然ゼロである場合、または唯一の文字がゼロである場合を除いて、文字列からすべての先行ゼロを削除します。
"005" would become "5"
"0AB" would become "AB"
"000" would become "0"
"0" would become "0"
この別のSOスレッドは私がやりたいことを行う方法を説明していますが、Rのソリューションを適用して構文が完全に正しいとは思いません。また、以下の1番目と2番目のソリューションの違いを本当に理解していません(彼らが実際に働いた場合)。
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"
私が欲しいものを得るためのRの適切な正規表現は何ですか?
regex
新入り。あなたのパターンと、この1の性能差(または他の好み)何^0*(.+)$
かが^0+(.+)$
?