質問

'{5}<blah>{0}</blah>'

私はそれを次のようにしたい:

['{5}', '<blah>', '{0}', '</blah>']

iは現在使用しています:________.split(/({.*?})/);

ただし、次のように中括弧が最初の文字の場合、これは失敗します。

'{0}<blah>'

次のようになります: ['', '{0}', '<blah>'] ... 2ではなく3要素の配列

正規表現の何が問題になっていますか?

ありがとう!

役に立ちましたか?

解決

正規表現に問題はありませんが、splitの使用方法に問題があります。 Splitは、区切り文字に基づいて配列を返します。そのため、区切り文字が最初の場合、分割されたアイテムの左右にデータが表示されます。

最初の項目== ''であるかどうかを確認し、ある場合は削除します。

他のヒント

これでうまくいくはずです:

split(/((?!^)\{.*?\})/)

負の先読み-(?!^)-は、文字列の先頭から一致が開始されない場合に成功します。

あなたはどう思いますか:

'{5}<blah>{0}</blah>'.split(/{([^}]+)}/g)

カーリーブロックの値は、アイテム1から2アイテムごとです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top