2016-10-11 7 views
2

内の単語を取得します。私は、文字列を持っている文

私はinput.split(' ')を試しましたが、二重引用符で囲んだ文字列を処理する方法が必要です。

は、私はトリック

+0

の任意の配列を意味する意味します何を試しましたか? – RobG

+0

かなり完全な複製ですが、[このC#バージョンは簡単に翻訳できます](https://stackoverflow.com/questions/14655023/split-a-string-that-has-white-spaces-unless-they-are-引用符で囲まれた)? –

+0

各文字を繰り返してスペース上に分割し、二重引用符に遭遇した場合は、次が見つかるまでスキップします。しかし、それは良く見えていません。 – Abhijeet

答えて

6

['My', 'name', 'is', '"foo bar"', 'I', 'live', 'in', 'New', 'York']として何かをしたいです。

(?:".*")は2つのmathcing "兆候
|手段OR
\S+間の任意のシーケンスは、あなたが(他の方法がありますが)正規表現が関与している可能性が実現するように見える任意の非空白文字

+0

@RobGが指摘した、固定 – Isaac

+0

引用符の部分に[""] * "'を使用して、 '' 'よりも効率的である間にジャンプしないことがあります。 *? "'。 – 4castle

+0

ありがとうIsaac – Abhijeet

1

(?:".*")|\S+はまさにそれを行います正規表現のコードを実行する必要があります

var str = 'My name is "foo bar" I live in New York'; 
 
console.log(str.split(/ |(".*?")/).filter(v=>v));

の線に沿って出力

関連する問題