2

私は彼らが主題についてすでに多くの質問をしていることを知っていますが、
私がしばらくの間分割しようとしたこの質問に対する答えはありません:

var string = "ABC hereWeAre Againwith Those words";

['A','B','C','here','We','Are','Againwith','Those','words'];

(大文字またはスペースがある場合)。

私は試してみました:

string.match(/[A-Z]+|[a-z]+|[0-9]+|[\S]+/g);
string.match(/[a-z]+/gi);

しかし、何も機能していません。
ご協力いただきありがとうございます。

4

2 に答える 2

3

これの正しい正規表現は次のようになります。

"ABC hereWeAre Againwith Those words".match(/[A-Z][a-z]*|[a-z]+/g);
于 2012-12-14T11:40:07.897 に答える
1

これは次のとおりです(少し複雑ですが、それでも機能します):

"ABC hereWeAre Againwith Those words".replace(/([A-Z])/g, ' $1').trim().split(/\s+/);
// returns ["A", "B", "C", "here", "We", "Are", "Againwith", "Those", "words"]

アイデアは、大文字を見つけ、それらの先頭にスペースを追加し、文字列全体をスペースでトリミングして分割することです。.split複数のスペースを次々に使用する問題を取り除くために、正規表現を渡すことに注意してください。

于 2012-12-14T11:33:04.707 に答える