9

.末尾のピリオド ( ) の直後に続く数字 (1 桁または 2 桁)を削除するにはどうすればよいですか? 例:

z <- c("awe", "p.56.red.45", "ted.5", "you.88.tom") 

.45と のみを削除したい.5

4

3 に答える 3

20

シンプルな正規表現が必要です:

z_new = gsub("\\.[0-9]*$", "", z)

いくつかのコメント:

  1. gsub の最初の引数は、探しているパターンです。2 番目の引数は、それを置き換えるものです (この場合は何もありません)。
  2. 文字は文字列の$末尾にあるパターンを探します
  3. [0-9]*1桁以上を探します。\\d*または、またはを使用することもできます[[:digit:]]*
  4. \\.ピリオドに一致します。2 つのスラッシュでピリオドをエスケープする必要があります。
于 2012-08-07T15:37:27.887 に答える
-1

これを行う最良の方法は、正規表現置換ステートメントを使用することです。これをどのように行うかは、使用している言語によって異なります。

末尾の数字を識別するために必要な正規表現パターンは次のとおりです

(。\ d {1,2})^

そして、あなたは単にマッチを次のように置き換える必要があります""

于 2012-08-07T15:49:06.020 に答える