特定の文字 (たとえば「;」(セミコロン)) が最初に出現するまですべてに一致するパターンを探しています。
私はこう書きました:
/^(.*);/
しかし、実際には、セミコロンが最後に出現するまで、すべて(セミコロンを含む)に一致します。
ベストアンサー1
必要なのは
/^[^;]*/
は文字クラス[^;]
であり、セミコロン以外のすべてに一致します。
^ (行頭アンカー) が正規表現の先頭に追加されるため、各行の最初の一致のみがキャプチャされます。後続の一致が望ましいかどうかに応じて、これが必要な場合もあります。
引用するperlre
マニュアルページ:
[] で文字のリストを囲むことで文字クラスを指定できます。文字クラスはリスト内の任意の文字と一致します。"[" の後の最初の文字が "^" の場合、クラスはリストにない任意の文字と一致します。
これはほとんどの正規表現方言で機能するはずです。
注:パターンは、最初のセミコロンまでのすべてに一致しますが、セミコロンは除きます。また、セミコロンがない場合は行全体に一致します。一致にセミコロンを含めたい場合は、パターンの最後にセミコロンを追加します。