正規表現パッテン定義このRegExpパターン/(?:^ |:|)(?: s * [)+/gはJavascriptで何を意味しますか? jQueryので
var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
は、このパターンは、 "ABC、[" と "ABC:[" のような文字列と一致している、ではなく、 "ABC^[" のために。 だから、この部分の意味は、パターンで何:
(:^ |:?|、)あなたがこれを配置する場合
正規表現パッテン定義このRegExpパターン/(?:^ |:|)(?: s * [)+/gはJavascriptで何を意味しますか? jQueryので
var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
は、このパターンは、 "ABC、[" と "ABC:[" のような文字列と一致している、ではなく、 "ABC^[" のために。 だから、この部分の意味は、パターンで何:
(:^ |:?|、)あなたがこれを配置する場合
(?: ...)
は、何も取得しないグループ((...)
など)です。
したがって、例(?:^|:|,)
は、テキストの先頭、コロン、またはコンマのいずれかと単純に一致します。
このパターンは、 "abc、["と "abc:["ではなく "abc^["あなたはそれが「の開始を意味し、マルチラインモード、オンにしていない限り、正規表現で、それは(「文字列の先頭を」意味 -
それは、^
が何を意味するのか分からないあなたのように聞こえますこの線")。
()
はキャプチャグループ?:
を意味し、グループの前面にはキャプチャされないので、キャプチャグループは文字グループになります。^|:|,
は、行の先頭(^
)、または:
または,
と一致することを意味します。 |
は、これらのトークンの間のセパレータです。(?:^|:|,)
は、^または:を意味します。通常、これは括弧のためにこれらの文字を捕捉するでしょうが、?:修飾子のために捕らえられません。
更新:whoops、true true。 ^この文脈では文字列の先頭にマッチし、シンボル自体にはマッチしません。
間違っていますが、'^'は"入力の開始 "を意味します(少なくとも' g'モードで) –
が表示されます。私は^が文字列や行の先頭を意味することを知っていますが、|と一緒に使用することはできません。 – dencey
@dencey:文字クラス '[...]'の中にある場合を除き、正規表現のどこでも文字列の開始を意味します。 – porges
@Porges '^'が文字クラスの最初の文字であるため、NOT最初の文字でない場合は、通常の '^ 'を意味します。 –