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

时间:2012-08-07 15:34:45

标签: regex r

如果在R中特定变量的字符串末尾出现一个数字(长度为一位或两位数)及其前面的点,我该如何删除它?例如:

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

我只想删除.45.5

3 个答案:

答案 0 :(得分:17)

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

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

一些评论:

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

答案 1 :(得分:3)

试试这个

gsub("\\.[[:digit:]]*$", "", z)

答案 2 :(得分:-1)

执行此操作的最佳方法是使用正则表达式替换语句。如何执行此操作取决于您使用的语言。

这是识别尾随数字所需的正则表达式模式

  

(\ d {1,2})^

您只需将匹配项替换为""

即可