如何使用以下字符串中的正则表达式仅提取数字:
+1 Ab_Cd- 001 234.txt`
这样我就回来了:
1001234
我有一个带有这种字符串向量的数据框。我试图在R和Python中完成上述操作。我更熟悉来自stringr
的R gsub()
和base
。我尝试了多种表达方式,但无法获得任何效果良好的内容。
答案 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)
以下是包含strsplit
和grepl
以及paste
# 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="")