Ответ 1
"foo bar, zap-foo, baz".split(/[\s,]+/)
Мне нужно регулярное выражение для разделения строки запятыми и/или пробелами, но игнорировать переносимые слова - что лучший способ сделать это?
так, например - мне бы хотелось...
"foo bar, zap-foo, baz".split(/[\s]+/)
для возврата
["foo", "bar", "zap-foo", "baz"]
но когда я это делаю, он включает такие запятые...
["foo", "bar,", "zap-foo,", "baz"]
"foo bar, zap-foo, baz".split(/[\s,]+/)
Вы можете указать класс символов, который говорит, что нужно разделить на вещи, которые не являются дефисом или символами слова:
"foo bar, zap-foo, baz".split(/[^\w-]+/)
Или вы можете разделить только на пробелы и запятые, используя класс символов, такой как который предоставил Ocson.
Или если вы хотите быть ДЕЙСТВИТЕЛЬНО явным о разделителях:
"foo bar, zap-foo, baz".split(/ |, |,/)
=> ["foo", "bar", "zap-foo", "baz"]
"foo bar, zap-foo, baz".split(/[\s.,]+/)