gpt4 book ai didi

regex - 测试字符串中的数字元素

转载 作者:行者123 更新时间:2023-12-02 15:43:10 25 4
gpt4 key购买 nike

我想测试一个字符串并查看哪些元素实际上可以是数字。我可以使用正则表达式来测试整数是否成功,但我想查看哪些元素包含所有数字和 1 个或更少的小数。以下是我尝试过的:

x <- c("0.33", ".1", "3", "123", "2.3.3", "1.2r")
!grepl("[^0-9]", x) #integer test

grepl("[^0-9[\\.{0,1}]]", x) # I know it's wrong but don't know what to do

我正在寻找逻辑输出,因此我期望以下结果:

[1] TRUE TRUE TRUE TRUE FALSE FALSE

最佳答案

也许你的其他一些数据更复杂,会破坏这个,但我的第一个想法是:

> !is.na(as.numeric(x))
[1] TRUE TRUE TRUE TRUE FALSE FALSE

正如下面 Josh O'Brien 所指出的,这不会拾取像 7L 这样的东西,R 解释器会将其解析为整数 7。如果您需要将它们包含为“看似数字”一种方法是首先使用正则表达式来挑选它们,

x <- c("1.2","1e4","1.2.3","5L")
> x
[1] "1.2" "1e4" "1.2.3" "5L"
> grepl("^[[:digit:]]+L",x)
[1] FALSE FALSE FALSE TRUE

...然后使用 gsub 和索引从这些元素中去除“L”。

关于regex - 测试字符串中的数字元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com