4

正規表現を使用してコンマ区切りの文字列を分割しようとしています。

var a = 'hi,mr.007,bond,12:25PM'; //there are no white spaces between commas
var b = /(\S+?),(?=\S|$)/g;
b.exec(a); // does not catch the last item.

すべてのアイテムをキャッチするための提案。

4

3 に答える 3

12

否定文字クラスを使用します。

/([^,]+)/g

非カンマのグループに一致します。

< a = 'hi,mr.007,bond,12:25PM'
> "hi,mr.007,bond,12:25PM"
< b=/([^,]+)/g
> /([^,]+)/g
< a.match(b)
> ["hi", "mr.007", "bond", "12:25PM"]
于 2013-02-28T19:24:46.687 に答える
6

なぜ使用しないの.splitですか?

>'hi,mr.007,bond,12:25PM'.split(',')
["hi", "mr.007", "bond", "12:25PM"]

何らかの理由で正規表現を使用する必要がある場合:

str.match(/(\S+?)(?:,|$)/g)
["hi,", "mr.007,", "bond,", "12:25PM"]

(コンマが含まれていることに注意してください)。

于 2013-02-28T19:20:33.803 に答える