Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用regex从R中提取字符串_R_Regex - Fatal编程技术网

使用regex从R中提取字符串

使用regex从R中提取字符串,r,regex,R,Regex,我有这个向量: jvm<-c("test - PROD_DB_APP_185b@SERVER01" ,"uat - PROD_DB_APP_SYS[1]@SERVER2") 我试过这样的方法: str_match(jvm, ".*\\-([^\\.]*)([.*)|(@.*)") 不工作,任何IDE?Asub带基本R的解决方案: jvm<-c("test - PROD_DB_APP_185b@SERVER01" ,"uat - PROD_DB_APP_SYS[1]@SERVER2

我有这个向量:

jvm<-c("test - PROD_DB_APP_185b@SERVER01" ,"uat - PROD_DB_APP_SYS[1]@SERVER2")
我试过这样的方法:

str_match(jvm, ".*\\-([^\\.]*)([.*)|(@.*)")

不工作,任何IDE?

A
sub
带基本R的解决方案:

jvm<-c("test - PROD_DB_APP_185b@SERVER01" ,"uat - PROD_DB_APP_SYS[1]@SERVER2")
sub("^.*?\\s+-\\s+([^@[]+).*", "\\1", jvm)

详细信息


  • (?或sub((\\[.*)@.*”,“”,jvm)@Sotos,对不起,你的答案是对的,在“-”和“[”或“@”
    之间快速修改一下,我有这个向量
    -如果这是一个字符串,你可以使用
    (?Try或
    stru-extract(jvm)(?)?
    
    jvm<-c("test - PROD_DB_APP_185b@SERVER01" ,"uat - PROD_DB_APP_SYS[1]@SERVER2")
    sub("^.*?\\s+-\\s+([^@[]+).*", "\\1", jvm)
    
    str_extract(jvm, "(?<=-\\s)[^@\\[]+")