文字列から数値を抽出しようとしています。
[0-9]+
そして、文字列に対して のような操作を実行して"aaa12xxx"
を取得します"12"
。
私はそれが次のようなものだと考えました:
> grep("[0-9]+", "aaa12xxx", value=TRUE)
[1] "aaa12xxx"
そして私は思いました...
> sub("[0-9]+", "\\1", "aaa12xxx")
[1] "aaaxxx"
しかし、私は次のような何らかの応答を得ました:
> sub("[0-9]+", "ARGH!", "aaa12xxx")
[1] "aaaARGH!xxx"
見逃している小さな詳細があります。
ベストアンサー1
既存の正規表現操作をすべて一貫した構文でラップし、不足している操作をいくつか追加した新しい stringr パッケージを使用します。
library(stringr)
str_locate("aaa12xxx", "[0-9]+")
# start end
# [1,] 4 5
str_extract("aaa12xxx", "[0-9]+")
# [1] "12"