开发者

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

开发者 https://www.devze.com 2023-01-22 07:06 出处:网络
I\'m struggling to get a regexp (in Ruby) that will provide the following \"one, two\" -> \"one\" \"one, two, three\" -> \"one\"

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消