How do I match a string up to the first comma (if present) with a Ruby regexp
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 an开发者_如何转开发yone help?
I'm wondering if it can't be simpler:
/([^,]+)/
Does it have to be a regex? Another solution:
text.split(',').first
Would matching only non commas from the beginning work? e.g.:
/^[^,]+/
How about /.*?(?=,|$)/
That way it either reads to the end or to a comma.
精彩评论