6

ここに、javascipt文字列の例があります。

example_string = "Answer 1| Answer 2| Answer 3|";

私は正規表現を使用してこのような配列を取得しようとしています:

Array ["Answer 1", " Answer 2", " Answer 3"]

私が試してみました:

result = example_string.split('/[|]+/g');

また、次のパターンで

'/[|]+/g'
'/[|]+\b/g'
'/[|]+[^$]/g'

そして、私はまだそれの終わりに空の要素を持つ配列を取得しています:

 Array ["Answer 1", " Answer 2", " Answer 3", ""]

それは私に多くの問題を引き起こします。私がパターンのどこで間違いを犯しているのか、それを修正する方法を誰かが知っていますか?

4

2 に答える 2

8

私はいつもスプリットが嫌いなものすべてに一致するのが好きでしたが:

分割の正規表現:(\|(?!$)) デモ

分割する代わりにマッチング:

正規表現:(?:([\w\s]+)\|?)

あなたはあなたが[^\|]+一致しなければならないものは何でも一致させるために使用することもできますが|

デモ

于 2012-11-07T11:28:06.980 に答える
3

間違いはありません。splitこれは絶対に正しい動作です(これが、最後の列の値が空のCSVファイルではないことをどのようにして知ることができますか?)。文字列が常にで終わることがわかっている場合は|、最初に最後の文字列を手動で削除できます。または、配列の最後の要素が空の場合は、それを削除することもできます。splitただし、(JavaScriptで)組み込み関数に空の結果を省略するように指示する可能性を見つけることができないようです。

于 2012-11-07T11:28:02.653 に答える