9

如何删除一个尾随句点 ( .),其后紧跟一个数字(长度为一位或两位数)?例子:

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. 字符在$字符串末尾寻找模式
  3. [0-9]*查找 1 个或多个数字。或者,您可以使用\\d*or [[:digit:]]*
  4. \\.匹配句号。我们需要用两个斜线来转义句号。
于 2012-08-07T15:37:27.887 回答
3

试试这个

gsub("\\.[[:digit:]]*$", "", z)
于 2012-08-07T15:43:24.627 回答
-1

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

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

(.\d{1,2})^

你应该简单地将匹配替换为""

于 2012-08-07T15:49:06.020 回答