регулярное выражение разделяет строку запятыми и пробелами, но игнорирует дефисные слова? - PullRequest
13 голосов
/ 02 декабря 2009

Мне нужно регулярное выражение, чтобы разделить строку запятыми и / или пробелами, но игнорировать дефисные слова - как лучше всего это сделать?

так, например - я бы хотел это ...

"foo bar, zap-foo, baz".split(/[\s]+/)

чтобы вернуть

["foo", "bar", "zap-foo", "baz"]

но когда я делаю это, он включает запятые как это ...

["foo", "bar,", "zap-foo,", "baz"]

Ответы [ 4 ]

34 голосов
/ 02 декабря 2009

"foo bar, zap-foo, baz".split(/[\s,]+/)

5 голосов
/ 02 декабря 2009

Вы можете указать класс символов, который говорит разделить на вещи, которые не являются дефисами или символами слова:

"foo bar, zap-foo, baz".split(/[^\w-]+/)

Или вы можете разделить только пробелы и запятые, используя класс символов, такой как , предоставленный Оксоном .

3 голосов
/ 03 декабря 2009

Или, если вы хотите ДЕЙСТВИТЕЛЬНО указывать разделители:

"foo bar, zap-foo, baz".split(/ |, |,/)

=> ["foo", "bar", "zap-foo", "baz"]
2 голосов
/ 18 июня 2013
"foo bar, zap-foo, baz".split(/[\s.,]+/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...