如何将此正则表达式转换为R正则表达式?
我有一个regex的工作块,但我无法让它在R中工作(使用来验证regex是否工作) 我有这个字符串:如何将此正则表达式转换为R正则表达式?,r,regex,R,Regex,我有一个regex的工作块,但我无法让它在R中工作(使用来验证regex是否工作) 我有这个字符串: pbb-nae-49/N2-A.N49AV048.SUP-DAMP 我需要上一个句号之后的所有内容,基本上可以是任何字符(但我认为上一个句号之后不会有空格)。我有这样一个方法,可以将字符串作为一个组来获取: \.([-0-9a-zA-Z\s]+\z) 我也有这个,它的工作原理有点不同(我不确定哪一个能在测试后用真实数据为我提供更好的结果): 这两行都不能提取R中的字符串: tester =
pbb-nae-49/N2-A.N49AV048.SUP-DAMP
我需要上一个句号之后的所有内容,基本上可以是任何字符(但我认为上一个句号之后不会有空格)。我有这样一个方法,可以将字符串作为一个组来获取:
\.([-0-9a-zA-Z\s]+\z)
我也有这个,它的工作原理有点不同(我不确定哪一个能在测试后用真实数据为我提供更好的结果):
这两行都不能提取R中的字符串:
tester = "pbb-nae-49/N2-A.N49AV048.SUP-DAMP"
gsub("[\\w\\d\\/\\.-]+\\.([\\w-]+)","POOP",tester) #returns original string
gsub("\\.([-0-9a-zA-Z\\s]+\\z)","POOP",tester) #returns original string
有没有办法解决这个问题?或者我缺少什么?你可以用
sub(".*\\.(.*)", "\\1", S)
你可以拿着这个
sub(".*\\.(.*)", "\\1", S)
或者另一个选项是
str\u match
library(stringr)
str_match(tester, ".*\\.([^.]+$)")[,2]
#[1] "SUP-DAMP"
或者使用
基R
子
匹配字符(*
)后接点(\.
),并捕获一个或多个非点([^.]+
)的字符,直到字符串的结尾($
)为止,并将其替换为该捕获组的反向引用(\\1
)
或者另一个选项是
str\u match
library(stringr)
str_match(tester, ".*\\.([^.]+$)")[,2]
#[1] "SUP-DAMP"
或者使用
基R
子
匹配字符(*
)后接点(\.
),并捕获一个或多个非点([^.]+
)的字符,直到字符串的结尾($
)为止,并将其替换为该捕获组的反向引用(\\1
)
如果您需要最后一个点
sub(“.\\\([^.]+),“\\1”,tester)之后的所有内容
如果您需要最后一个点sub(“.\\\([^.]+),“\\1”,tester)之后的所有内容
是如何引用最后一个组的?关闭。您需要\\1。它指的是括号中的所有内容。哈,是的。。对不起,这就是我的意思,我只是在验证那首曲子是怎么做的。谢谢“//1”
您是如何引用最后一个组的?关闭。您需要\\1。它指的是括号中的所有内容。哈,是的。。对不起,这就是我的意思,我只是在验证那首曲子是怎么做的。谢谢@但是,我已经在base R
中注释了一条stringr
基于高度optimized@lukehawk但是,我已经在base R
中注释了一个iinstringr
基于高度优化的stringi
函数