2012-03-02 17 views
1

文字列を '単語'の配列に分割する最も良い方法は何ですか? 空白で分割するだけでなく、ダッシュも前の「単語」の一部になります。空白とダッシュによる文字列の分割

例:

[ "これは"、 "である"、 ""、 "例 - "、 " "これは私が何を意味するか

デモに例-文字列です" " "デモに文字列」、""、 "何を"、 "I" は、 "]" を意味

編集:私は馬鹿だ - それはこれです:

someString.replace(/-/g, "- ").split(/[\s]/); // retain dashes 

答えて

6

Splittin区切り文字が常に消費されるため、区切り文字を結果に残す必要がある場合、gは機能しません。

使用.match代わり:

"This is an example-string to demo what I mean".match(/[^\s-]+-?/g); 
// ["This", "is", "an", "example-", "string", "to", "demo", "what", "I", "mean"] 

この正規表現は、スペース/ダッシュ、およびそれ以下の任意のダッシュではない1つまたは複数の文字に一致します。 gフラグを指定すると、すべての一致が返されます。

+0

あなたは、私が投稿後1分で解決した解決策を使って質問を編集していたときに答えました。あなたの方法は私の方がいいですか? – Adamarla

+0

@adamarla:単語がダッシュで始まる場合を除いて、同じように動作するようです。 – pimvdb

+0

ああ、最初のダッシュが重要になることがあります。「-12.85は負です」 – Adamarla

関連する問題