javascript - 2 つの文字の間の文字列を検索するための js 正規表現
伊谢尔伦
伊谢尔伦 2017-05-19 10:37:52
0
5
770

このような文字列です
var d = "1[ddd]sfdsaf[ccc]fdsaf[bbbb]";
[と]の間の文字列配列を取得したいです
正規表現を使用するにはどうすればよいですか?
括弧は 2 つ含まれません
現在は括弧でのみ実行できます

リーリー
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(5)
大家讲道理

リーリー

いいねを押す +0
给我你的怀抱

非常に簡単です。ゼロ幅アサーションを使用します:

リーリー

上記ではゼロ幅の正先読みアサーションのみを使用していますが、実際にはJavaScriptに限らず、

のように書くこともできます。 リーリー

ゼロ幅アサーションは 2 つのカテゴリと 4 つのタイプに分類されます:

ゼロ幅アサーションを転送

ゼロ幅の正の先読みアサーション(?=exp)

それ自体の位置の後の式は exp と一致する可能性がありますが、exp とは一致しないことを示します。
たとえば、 d+(?=999) は 999 で終わる数値文字列を表します (ただし、一致結果には 999 は含まれません)

肯定的なレビュー後のゼロ幅アサーション(?<=exp)(JavaScriptはサポートされていません)

それ自体の位置より前の exp に一致する式が exp に一致しないことを示します。
たとえば、 (?<=999)d+ は 999 で始まる数値文字列を表します (ただし、一致結果には 999 は含まれません)

負のゼロ幅アサーション

ゼロ幅の否定先読みアサーション(?!exp)

自身の位置を示す式の後にexpを続けることはできません。
たとえばd+(?!999)は、999で終わらない数字の文字列と一致することを意味します

ゼロ幅ネガティブ ルックバック アサーション(?<!exp)(JavaScript はサポートされていません)

自身の位置を示す式の前に exp を付けることはできません。
たとえば(?<!999)d+は、999で始まらない数字の文字列と一致することを意味します

いいねを押す +0
淡淡烟草味

replace を使用した @hack_qtxz の実装を参照してください。

リーリー

以下は元の答えです:

@Shuke の答えは少し繰り返しなので、別の方法で書きます。

リーリー

元の答えは次のとおりです:

リーリー
いいねを押す +0
刘奇

コードを完成させるには、@cipchk を引用してください。

リーリー
いいねを押す +0
巴扎黑

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート