How do I match a string up to the first comma (if present) with a Ruby regexp

regex, ruby

Solution

I'm wondering if it can't be simpler:

/([^,]+)/

Problem

I'm struggling to get a regexp (in Ruby) that will provide the following ``` "one, two" -> "one" "one, two, three" -> "one" "one two three" -> "one two three" ``` I want to match any characters up until the first comma in a string. If there are no commas I want the entire string to be matched. My best effort so far is ``` /.*(?=,)?/ ``` This produces the following output from the above examples ``` "one, two" -> "one" "one, two, three" -> "one, two" "one two three" -> "one two three" ``` Close but no cigar. Can anyone help?

Original source