如何使用R中的正则表达式从字符串中提取所有三个(五位)数字?

问题描述 投票:0回答:1

我是新来的正则表达式,所以请您帮忙。

我有一个字符串值,例如102-105+106-10605-10605 -10610-10610+10613。如何轻松提取三位数的所有值,五位数的所有值。另一个任务是考虑数值前的+ or -符号。说,提取所有5位数字前带有符号-的值。

我知道R中有一些软件包可以帮助您做到这一点。但是我不知道该怎么做。我尝试了各种代码,但不幸的是,我每次都失败了。

r regex nsregularexpression
1个回答
0
投票
vect <- "102-105+106-10605-10605 -10610-10610+10613"

#Extract 3 digits
str_extract_all(vect, pattern = "[:digit:]{3}")
[[1]]
[1] "102" "105" "106" "106" "106" "106" "106" "106"

#Extract 5 digits    
str_extract_all(vect, pattern = "[:digit:]{5}")
[[1]]
[1] "10605" "10605" "10610" "10610" "10613"

#Extract 5 digits with minus sign ahead of it
str_extract_all(vect, pattern = "-[:digit:]{5}")
[[1]]
[1] "-10605" "-10605" "-10610" "-10610"

希望这会有所帮助以供参考:https://stringr.tidyverse.org/articles/regular-expressions.html

© www.soinside.com 2019 - 2024. All rights reserved.