# Strange ... I'm getting crazy

**URL:** <https://www.ruby-forum.com/t/strange-im-getting-crazy/107381>\
**Category:** Ruby\
**Created:** [June 21, 2007, 1:10am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381 "2007-06-21T01:10:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:10am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/1 "2007-06-21T01:10:34Z")

</div>

WTF:

```
str = "removed_email_address@domain.invalid, removed_email_address@domain.invalid, removed_email_address@domain.invalid"

emails_array = Array.new
emails = str.split(",")
emails.each do |single_str|

  tmp = single_str[/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i]

  if !tmp.nil?
    emails_array << tmp

  end
 end

```

— Expected result

emails\_array =\> [“removed\_email\_address@domain.invalid”,“removed\_email\_address@domain.invalid”,“removed\_email\_address@domain.invalid”]

-----Actual result

emails\_array =\> [removed\_email\_address@domain.invalid]

Can’t understand

---

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:15am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/2 "2007-06-21T01:15:58Z")

</div>

On Jun 21, 2007, at 1:10 AM, J. mp wrote:

> ```
> str = "removed_email_address@domain.invalid, removed_email_address@domain.invalid, removed_email_address@domain.invalid"
> 
> emails_array = Array.new
> emails = str.split(",")
> emails.each do |single_str|
> 
> tmp = single_str[/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i]
> 
> ```

There’s a space after each comma in str that the regexp does not  
allow. Either remove them or split by /\s\*,\s\*/.

– fxn

---

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:19am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/3 "2007-06-21T01:19:59Z")

</div>

Hi –

On Thu, 21 Jun 2007, J. mp wrote:

> ```
> if !tmp.nil?
> 
> ```
> 
> -----Actual result
> 
> emails\_array =\> [removed\_email\_address@domain.invalid]

I get:

[“removed\_email\_address@domain.invalid”, " removed\_email\_address@domain.invalid", " removed\_email\_address@domain.invalid"]

David

---

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:20am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/4 "2007-06-21T01:20:59Z")

</div>

On Thu, Jun 21, 2007 at 08:10:33AM +0900, J. mp wrote:

> ```
> if !tmp.nil?
> emails_array << tmp
> 
> end
> end
> 
> ```

“removed\_email\_address@domain.invalid, removed\_email\_address@domain.invalid, removed\_email\_address@domain.invalid”.split(’,’)  
=\> [“removed\_email\_address@domain.invalid”, " removed\_email\_address@domain.invalid", " removed\_email\_address@domain.invalid"]

Notice the white space at the start of all but the first email address.

With that whitespace there, the /^ in your regex won’t be satisfied.

You probably want do split more like this:  
“removed\_email\_address@domain.invalid, removed\_email\_address@domain.invalid, removed\_email\_address@domain.invalid”.split(/\s\*,\s\*/)  
=\> [“removed\_email\_address@domain.invalid”, “removed\_email\_address@domain.invalid”, “removed\_email\_address@domain.invalid”]

marcel

---

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:22am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/5 "2007-06-21T01:22:59Z")

</div>

Hi –

On Thu, 21 Jun 2007, removed\_email\_address@domain.invalid wrote:

> I get:
> 
> [“removed\_email\_address@domain.invalid”, " removed\_email\_address@domain.invalid", " removed\_email\_address@domain.invalid"]

No I don’t; please ignore.

David

---

<div class="post-metadata">

**Author:** ![j-merrill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@j-merrill](https://www.ruby-forum.com/u/j-merrill)\
**Post date:** [June 21, 2007, 1:18am UTC](https://www.ruby-forum.com/t/strange-im-getting-crazy/107381/6 "2007-06-21T01:18:26Z")

</div>

Xavier N. wrote:

> On Jun 21, 2007, at 1:10 AM, J. mp wrote:
> 
> > ```
> > str = "removed_email_address@domain.invalid, removed_email_address@domain.invalid, removed_email_address@domain.invalid"
> > 
> > emails_array = Array.new
> > emails = str.split(",")
> > emails.each do |single_str|
> > 
> > tmp = single_str[/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i]
> > 
> > ```
> 
> There’s a space after each comma in str that the regexp does not  
> allow. Either remove them or split by /\s\*,\s\*/.
> 
> – fxn

God bless you. you’re right I’m stupid  
thanks
