このような文字列ですvar d = "1[ddd]sfdsaf[ccc]fdsaf[bbbb]";
[と]の間の文字列配列を取得したいです
正規(guī)表現(xiàn)を使用するにはどうすればよいですか?
括弧は 2 つ含まれません
現(xiàn)在は括弧でのみ実行できます
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
非常に簡(jiǎn)単です。ゼロ幅アサーションを使用します:
リーリー上記ではゼロ幅の正先読みアサーションのみを使用していますが、実際にはJavaScriptに限らず、
のように書くこともできます。 リーリーゼロ幅アサーションは 2 つのカテゴリと 4 つのタイプに分類されます:
(?=exp)
それ自體の位置の後の式は exp と一致する可能性がありますが、exp とは一致しないことを示します。
たとえば、 d+(?=999)
は 999 で終わる數(shù)値文字列を表します (ただし、一致結(jié)果には 999 は含まれません)
(?<=exp)
(JavaScriptはサポートされていません)それ自體の位置より前の exp に一致する式が exp に一致しないことを示します。
たとえば、 (?<=999)d+
は 999 で始まる數(shù)値文字列を表します (ただし、一致結(jié)果には 999 は含まれません)
(?!exp)
自身の位置を示す式の後にexpを続けることはできません。
たとえばd+(?!999)
は、999で終わらない數(shù)字の文字列と一致することを意味します
(?<!exp)
(JavaScript はサポートされていません)自身の位置を示す式の前に exp を付けることはできません。
たとえば(?<!999)d+
は、999で始まらない數(shù)字の文字列と一致することを意味します
replace を使用した @hack_qtxz の実裝を參照してください。
リーリー以下は元の答えです:
@Shuke の答えは少し繰り返しなので、別の方法で書きます。
リーリー元の答えは次のとおりです:
リーリー