从字符串中提取值(regex帮助)

oaxa6hgo  于 2023-04-22  发布在  其他
关注(0)|答案(3)|浏览(151)

我有一个dataframe,我想提取每个城市的温度值。
例如,如果我有一个字符串表示"NYC experienced a temperature of 35.5 degrees centigrade"
如何提取35.5

q3aa0525

q3aa05251#

import re
string = "NYC experienced a temperature of 35.5 degrees centigrade"
pattern = r"\d+\.\d+"
temperature = re.search(pattern, string)
print(temperature.group())

应打印:

35.5
eufgjt7s

eufgjt7s2#

library(stringr)
string <- "NYC experienced a temperature of 35.5 degrees centigrade"
pattern <- "\\d+\\.\\d+"
temperature <- str_extract(string, pattern)
print(temperature)

[1] "35.5"
8xiog9wr

8xiog9wr3#

假设输入字符串是s,它将每个单词读入单独的data.frame列,然后使用Filter提取数字列,最后将data.frame结果转换为标量。不使用正则表达式或包。

Filter(is.numeric, read.table(text = s))[[1]]
## [1] 35.5

或者相当于这个管道

s |> read.table(text = _) |> Filter(f = is.numeric) |> as.numeric()
## [1] 35.5

如果我们有一个字符串向量ss,那么

ss <- c(s, s) # test data

f <- function(x) Filter(is.numeric, read.table(text = x))[[1]]
sapply(ss, f, USE.NAMES = FALSE)
## [1] 35.5 35.5

相关问题