加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 测试字符串中的数字元素

发布时间:2020-12-14 06:36:56 所属栏目:百科 来源:网络整理
导读:我想测试一个字符串,看看哪些元素实际上可以是数字。我可以使用正则表达式测试整数成功,但我正在查看哪些元素具有所有数字和1个或更少的小数。以下是我试过的: x - c("0.33",".1","3","123","2.3.3","1.2r")!grepl("[^0-9]",x) #integer testgrepl("[^0-9
我想测试一个字符串,看看哪些元素实际上可以是数字。我可以使用正则表达式测试整数成功,但我正在查看哪些元素具有所有数字和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”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读