我想检查一个字符串的格式是“1234.34”还是“1234”。我在R中使用grepl(1个或多个数字,一个点或不跟更多数字)尝试了以下方法:
grepl("([[:digit:]]+\\.?[[:digit:]]*)", c("1234.34", "1234,34", "1234")) # [1] TRUE TRUE TRUE
使用1234.34或1234,它可以正常工作(都是TRUE)。如果我测试“1234,34”(带“逗号”),表达式将变为TRUE,但我预期为FALSE。
vbkedwbf1#
你可以在正则表达式模式中包含这两个选项:仅数字或数字+点+更多数字。用管道|分隔两个选项:
|
x <- c("1234.34", "1234,34", "1234") grepl("^\\d+$|^\\d+\\.\\d+$", x) #> [1] TRUE FALSE TRUE
创建于2023-03-23带有reprex v2.0.2
6jjcrrmo2#
只要字符串只包含数字,您就可以执行以下操作来搜索除逗号以外的任何内容:
x <- c("1234", "1234.34", "1234,34") grepl("^[^,]+$", x) [1] TRUE TRUE FALSE
2条答案
按热度按时间vbkedwbf1#
你可以在正则表达式模式中包含这两个选项:仅数字或数字+点+更多数字。用管道
|
分隔两个选项:创建于2023-03-23带有reprex v2.0.2
6jjcrrmo2#
只要字符串只包含数字,您就可以执行以下操作来搜索除逗号以外的任何内容: