Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
在R中,有没有一种方法可以使用正则表达式或类似的东西来提取电子邮件字符串的第一个和最后一个字符?_R_Regex - Fatal编程技术网

在R中,有没有一种方法可以使用正则表达式或类似的东西来提取电子邮件字符串的第一个和最后一个字符?

在R中,有没有一种方法可以使用正则表达式或类似的东西来提取电子邮件字符串的第一个和最后一个字符?,r,regex,R,Regex,目前在R中,使用data.table,我有以下列: jamesmann@yahoo.com bill.free@yahoo.com computer.trader@yahoo.com j*****n@gmail.com 这些都是因素。我想对上面的内容进行分析,这样我就可以得到@符号前面用户名的首字母和末字母 因此,对于以上内容,我想得到: jn be cr jn 我处理一些带星号的用户名,所以我也添加了它。有没有一个简单的方法可以做到这一点?任何想法都将不胜感激

目前在R中,使用data.table,我有以下列:

jamesmann@yahoo.com       
bill.free@yahoo.com        
computer.trader@yahoo.com
j*****n@gmail.com
这些都是因素。我想对上面的内容进行分析,这样我就可以得到
@
符号前面用户名的首字母和末字母

因此,对于以上内容,我想得到:

jn
be
cr
jn

我处理一些带星号的用户名,所以我也添加了它。有没有一个简单的方法可以做到这一点?任何想法都将不胜感激

将以下模式与字符串匹配,并将其替换为捕获组:

sub("(.).*(.)@.*", "\\1\\2", s)
## [1] "jn" "be" "cr" "jn"
注 可复制形式的输入字符串为:

s <- c("jamesmann@yahoo.com", "bill.free@yahoo.com", "computer.trader@yahoo.com",
  "j*****n@gmail.com")

s将以下模式与字符串匹配,并将其替换为捕获组:

sub("(.).*(.)@.*", "\\1\\2", s)
## [1] "jn" "be" "cr" "jn"
注 可复制形式的输入字符串为:

s <- c("jamesmann@yahoo.com", "bill.free@yahoo.com", "computer.trader@yahoo.com",
  "j*****n@gmail.com")
s