R中的正则表达式:如何剪切数字序列?

时间:2017-06-24 07:16:50

标签: r regex

有一个小文本列表。 结尾中的某些文本可能包含由空格分隔的数字序列。对于这种情况,必须在文本中保留此序列的第一个数字,从而切断剩余的数字序列。怎么做? 例如:

  1. “有些字1” - > “有些话1”
  2. “有些词” - > “有些话”
  3. “1个单词2” - > “一些1字2”
  4. “1个字3 33 444” - > “一些1字3”
  5. “有些字544 11” - > “有些话544”

1 个答案:

答案 0 :(得分:3)

使用gsub()使用以下模式:

(\\d+)(?: \\d+)*$

然后替换为第一个捕获组,即\\1

x1 <- "Some words"
x2 <- "Some words 544 11"
x3 <- "Some 1 words 3 33 444"
result1 <- gsub("(\\d+)(?: \\d+)*$", "\\1", x1)
result2 <- gsub("(\\d+)(?: \\d+)*$", "\\1", x2)
result3 <- gsub("(\\d+)(?: \\d+)*$", "\\1", x3)

print(result1)
print(result2)
print(result3)

在这里演示:

Rextester