2012-02-29 10 views

答えて

1

(?: ...)は、何も取得しないグループ((...)など)です。

したがって、例(?:^|:|,)は、テキストの先頭、コロン、またはコンマのいずれかと単純に一致します。

このパターンは、 "abc、["と "abc:["ではなく "abc^["あなたはそれが「の開​​始を意味し、マルチラインモード、オンにしていない限り、正規表現で、それは(「文字列の先頭を」意味 -

それは、^が何を意味するのか分からないあなたのように聞こえますこの線")。

+0

が表示されます。私は^が文字列や行の先頭を意味することを知っていますが、|と一緒に使用することはできません。 – dencey

+0

@dencey:文字クラス '[...]'の中にある場合を除き、正規表現のどこでも文字列の開始を意味します。 – porges

+0

@Porges '^'が文字クラスの最初の文字であるため、NOT最初の文字でない場合は、通常の '^ 'を意味します。 –

1
  • ()はキャプチャグループ
  • ?:を意味し、グループの前面にはキャプチャされないので、キャプチャグループは文字グループになります。
  • ^|:|,は、行の先頭(^)、または:または,と一致することを意味します。 |は、これらのトークンの間のセパレータです。
1

(?:^|:|,)は、^または:を意味します。通常、これは括弧のためにこれらの文字を捕捉するでしょうが、?:修飾子のために捕らえられません。

更新:whoops、true true。 ^この文脈では文字列の先頭にマッチし、シンボル自体にはマッチしません。

+0

間違っていますが、'^'は"入力の開始 "を意味します(少なくとも' g'モードで) –

関連する問題