删除字符串末尾的点和数字

Bra*_*den 8 regex r

如何删除一个数字(长度为一位或两位数)以及每次在特定变量中的字符串末尾出现时直接位于其前面的点R?例:

z<-c("awe", "p.56.red.45", "ted.5", "you.88.tom") 
Run Code Online (Sandbox Code Playgroud)

我只想删除.45.5.

csg*_*pie 19

你只需要一个简单的正则表达式:

z_new = gsub("\\.[0-9]*$", "", z)
Run Code Online (Sandbox Code Playgroud)

一些评论:

  1. gsub中的第一个参数是我们正在寻找的模式.第二个参数是用什么替换它(在这种情况下,什么都没有).
  2. $字符查找模式在字符串的结尾
  3. [0-9]*查找1位或更多位数.或者,您可以使用\\d*[[:digit:]]*.
  4. \\.匹配句号.我们需要用两个斜线逃脱全程.