我有一個包含用戶電子郵件地址列的資料框。電子郵件地址的格式可以是任何格式。我需要創建一個名為“代理”的新列,其中僅包含用戶電子郵件的域(換句話說,提取“@”和最后一個“.”之間的值)。
例子:
- '[email protected]' 變為 'mydomain'
- '[email protected]' 變為 'yourdomain'
我似乎無法解決到達那里的語法......
到目前為止,我能做的最好的就是消除@之前的部分:
Azure_table <- Azure_table %>%
mutate(
agency = gsub(".*@", "", userPrincipalName)
)
這給了我以下結果:

如何消除最后一個點(.com、.ca 等)之后的文本?有沒有更好的方法來做到這一點?
提前致謝!
uj5u.com熱心網友回復:
以下內容str_extract應該適合您的需求。我沒有用空字串替換文本,而是提取了所需的資訊。
pattern = "(?<=@).*(?=\\.[a-zA-Z] $)"
測驗用例:
s1 <- "[email protected]"
s2 <- "[email protected]"
s3 = "[email protected]"
s4 <- "[email protected]"
str_extract(s1, pattern)
[1] "subtel"
str_extract(s2, pattern)
[1] "subtel"
str_extract(s3, pattern)
[1] "hello.something"
str_extract(s4, pattern)
[1] "example.applestore.apple"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421908.html
標籤:
