【发布时间】:2015-08-02 16:36:36
【问题描述】:
我意识到这个问题对于大多数正则表达式大师来说可能看起来非常简单,但是回顾类似的问题并没有找到解决方案。
我有一个名为email 的电子邮件地址向量,并希望在每个电子邮件地址的最后一个句点之后提取文本。举例来说,
email<-c("xxxxx1@xxx.com", "xxxx2@xxx.edu", "xxxxx3@xxx.co.uk")
我试过了:
grep("[\.][a-zA-Z]*?$", email, value=T)
这让我得到错误消息:
错误:“。”是从“”开始的字符串中无法识别的转义。”`
另一方面,删除转义字符
grep("[.][a-zA-Z]*?$", email, value=T)
按原样返回整个电子邮件地址:
grep("\\.[a-zA-Z]*$", email, perl=T, value=T)
在这一点上,我非常感谢您的帮助。
【问题讨论】:
-
你能举一些例子来测试吗?
-
喜欢一个示例电子邮件地址吗?试试
xxx@xxxx.com理想情况下,解决方案只会产生.com -
您需要使用
gsub或sub而不是grepi.e。sub('.*\\.', '', email) -
str_extract(a, "[^.]*$") -
感谢 Akrun 和 Avinash,他们都工作得很好。