2009-12-02 7 views
11

쉼표 및/또는 공백으로 문자열을 분할하지만 하이픈 처리 된 단어를 무시하려면 정규 표현식이 필요합니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까?regexp 쉼표와 공백으로 문자열을 분할하지만 하이픈으로 연결된 단어는 무시 하시겠습니까?

때문에, 예를 들어 -이 싶습니다 ...

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

...

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

를 반환하지만 나는이 같은 쉼표를 포함 할 때

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

답변

29

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

+1

'[ "foo는", "바", "보내 겠 - foo는", "바즈을"] '출력물이지만 처음에는'[ "foo bar"]'[' "foo"and "bar"]' – carbonr

5

하이픈 또는 단어 문자가 아닌 항목으로 나뉘는 문자 클래스를 지정할 수 있습니다.

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

또는 Ocson has provided과 같은 문자 클래스를 사용하여 공백과 쉼표로만 분리 할 수 ​​있습니다.

2

아니면 분리에 대해 정말 명시 할 경우 :

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

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

use "로 나눌 수 없습니다 ** ** ** – Amit

관련 문제