# Extract domains from a string of email address

**URL:** <https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055>\
**Category:** Logstash\
**Created:** [February 26, 2019, 6:30pm UTC](https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055 "2019-02-26T18:30:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![austin0918](https://avatars.discourse-cdn.com/v4/letter/a/c68b51/32.png) [@austin0918](https://discuss.elastic.co/u/austin0918)\
**Post date:** [February 26, 2019, 6:30pm UTC](https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055/1 "2019-02-26T18:30:31Z")

</div>

I have a field "to\_domains\_temp" (copied from email recipients list, amount of email addresses is unpredictable), let's say "akii.suzuki@gmail.com;machael.miki@hotmail.com;nobuo.miki@outlook.com;wakako.seki@gmail.com"  
how do I extract all the domains from the field? I tried below approach but seems like gsub does not work. Please kindly advise.

filter {  
gsub =\> [  
"to\_domains\_temp", "(\W|^)[\w.+-]{0,100}@", ";prefix@" #match and replace email prefix with ";prefix@"  
]  
kv {field\_split =\> ";" value\_split =\> "@" source =\> "to\_domains\_temp" target =\> "to\_domains" allow\_duplicate\_values =\> false}  
rename =\> {"to\_domains.prefix" =\> "to\_domain"}  
}

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [February 26, 2019, 7:00pm UTC](https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055/2 "2019-02-26T19:00:36Z")

</div>

```
    mutate { split => { "domains" => ";" } }
    mutate { gsub => ["domains", ".*@", ""] }
    ruby { code => 'event.set("domains", event.get("domains").uniq)' }
```

---

<div class="post-metadata">

**Author:** ![austin0918](https://avatars.discourse-cdn.com/v4/letter/a/c68b51/32.png) [@austin0918](https://discuss.elastic.co/u/austin0918)\
**Post date:** [February 26, 2019, 7:37pm UTC](https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055/3 "2019-02-26T19:37:40Z")

</div>

Thanks Badger. It works like a charm:smiley:

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 26, 2019, 7:37pm UTC](https://discuss.elastic.co/t/extract-domains-from-a-string-of-email-address/170055/4 "2019-03-26T19:37:41Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
