只提取带有标点符号的字符串中的数字和R中的空格?

时间:2016-07-23 19:50:21

标签: python regex r

如何使用以下字符串中的正则表达式仅提取数字:

+1 Ab_Cd- 001 234.txt`

这样我就回来了:

1001234

我有一个带有这种字符串向量的数据框。我试图在R和Python中完成上述操作。我更熟悉来自stringr的R gsub()base。我尝试了多种表达方式,但无法获得任何效果良好的内容。

2 个答案:

答案 0 :(得分:5)

在R中,您可以使用gsub删除所有非数字\\D字符:

s <- "+1 Ab_Cd- 001 234.txt"
gsub("\\D+", "", s)
# [1] "1001234"
来自python中sub

re做了类似的事情:

import re
re.sub("\D+", "", "+1 Ab_Cd- 001 234.txt")
# '1001234'

答案 1 :(得分:1)

以下是包含strsplitgrepl以及paste

的基本R方法
# split each character into a vector element
temp <- unlist(strsplit("+1 Ab_Cd- 001 234.txt", split=""))
# paste digit (numerical) characters together
paste(temp[grepl("[0-9]", temp)], collapse="")