R 解析字符串-提取结尾处的数字字符
解析R数据帧中的字符串字段对我来说有点神秘,我恐怕……如果能得到帮助,我将不胜感激 我有一个字符串字段,它总是以不确定数量的数字字符结尾。我想写一段代码,只提取每个结尾的数字部分 数据格式的一个示例是:R 解析字符串-提取结尾处的数字字符,r,string,parsing,R,String,Parsing,解析R数据帧中的字符串字段对我来说有点神秘,我恐怕……如果能得到帮助,我将不胜感激 我有一个字符串字段,它总是以不确定数量的数字字符结尾。我想写一段代码,只提取每个结尾的数字部分 数据格式的一个示例是: df_test <- data.frame(my_string = c("XXX-0387", "XXXX-1-999999", "XXX 12345432", "XXX-2345", "XXX1234")) 请问有没有简单的方法 谢谢。一种使用sub捕捉字符串最后一部分的方法,即数字
df_test <- data.frame(my_string = c("XXX-0387", "XXXX-1-999999", "XXX 12345432", "XXX-2345", "XXX1234"))
请问有没有简单的方法
谢谢。一种使用sub捕捉字符串最后一部分的方法,即数字
sub('.*?(\\d+)$', '\\1', df_test$my_string)
#[1] "0387" "999999" "12345432" "2345" "1234"
使用stringr:
一种使用sub捕获字符串最后一部分的方法,即数字
sub('.*?(\\d+)$', '\\1', df_test$my_string)
#[1] "0387" "999999" "12345432" "2345" "1234"
使用stringr:
您可以将regexpr与\\d+$一起使用,以查找末尾的数字,并使用regmatches将其提取出来
您可以将regexpr与\\d+$一起使用,以查找末尾的数字,并使用regmatches将其提取出来
我们可以使用stri_extract_last从stringi中提取
我们可以使用stri_extract_last从stringi中提取
非常感谢。两者似乎都有效。可能会与stringr版本一起使用-我倾向于喜欢所有整洁的东西,我有一个很难理解的地方。*?一个东西怎么能匹配至少0次*最多一次?。我可以从测试中看出这是必要的,我只是感到困惑。就我个人而言,我可以更容易地理解这样的内容,例如“*\\D\\D+$”、“\\1”、df\u test$my_string@DanielO默认情况下,正则表达式是贪婪的..*?用于在匹配数字之前匹配尽可能少的字符。谢谢。两者似乎都有效。可能会与stringr版本一起使用-我倾向于喜欢所有整洁的东西,我有一个很难理解的地方。*?一个东西怎么能匹配至少0次*最多一次?。我可以从测试中看出这是必要的,我只是感到困惑。就我个人而言,我可以更容易地理解这样的内容,例如“*\\D\\D+$”、“\\1”、df\u test$my_string@DanielO默认情况下,正则表达式是贪婪的..*?用于在匹配数字之前匹配尽可能少的字符。
stringr::str_extract(df_test$my_string, '\\d+$')
regmatches(df_test$my_string, regexpr("\\d+$", df_test$my_string))
#[1] "0387" "999999" "12345432" "2345" "1234"
library(stringi)
stri_extract_last(df_test$my_string, regex = "\\d+")
#[1] "0387" "999999" "12345432" "2345" "1234"