次のような文字列があります。
txt <- "|M CHG 6 44 -1 48 -1 53 -1 63 1 64 1 65 1|"
最初の数字 (6) は、パターンが\\s+\\d+\\s+[\\+-]?\\d+
6 回繰り返されることを意味します。実際、私はこのパターンの 2 番目の (潜在的に署名された) 桁にのみ関心があります。だから私は結果として私を与える関数または正規表現を探しています
[1] "-1" "-1" "-1" "1" "1" "1"
で試してみました
gsub( "^\\|M\\s+CHG\\s+\\d+(\\s+\\d+\\s+([\\+-]?\\d+))+\\|$", replacement="\\2", x=txt, perl=TRUE )
としても
str_replace_all( x, perl( "^\\|M\\s+CHG\\s+\\d+(\\s+\\d+\\s+([\\+-]?\\d+))+\\|$" ), "\\2" )
しかし、どちらの場合も、最後のオカレンスのみが返されました。