正規表現の一致を抽出する 質問する

正規表現の一致を抽出する 質問する

文字列から数値を抽出しようとしています。

[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"

おすすめ記事