タグ

正規表現に関するmagicalboyのブックマーク (5)

  • 正規表現の先読み・後読み

    正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字4つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ0の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。(?=

    正規表現の先読み・後読み
  • 正規表現の活用 (主に Delphi 2009 以降) [Delphi Programming]

     正規表現の活用 (主に Delphi 2009 以降) 文字列操作やファイル操作を行う場合には正規表現を使うと楽です。ただ、正規表現には膨大な機能があり、それをすべて紹介していたらが一冊書けてしまいます。そこで、"Delphi で正規表現を使う" という点に絞って話を進めてみたいと思います。 SkRegExp と PerlRegEx 入手方法 名前空間 注意点 文字列のマッチ 関数版 コアクラス版 ラッパークラス版 マッチ文字列の列挙 コアクラス版 ラッパークラス版 文字列のグループマッチ 関数版 コアクラス版 ラッパークラス版 グループマッチ文字列の列挙 コアクラス版 ラッパークラス版 グループのキャプチャ (捕捉グループ) 文字列マッチに使うラッパークラスの(静的)メソッドとクラスメソッド 文字列の置換 関数版 コアクラス版 ラッパークラス版 文字列置換に使うラッパークラスの(静

  • 正規表現 - 2部 Perl言語仕様 - [SMART]

    正規表現の概要 正規表現は、Perlの中で最も重宝する機能のひとつです。正規表現にはテキスト処理のための様々な機能があり、文字列の中から特定のパターンを見つけ出したり、置換したりすることができます。 正規表現の基的な使用方法 たとえば、$strという変数に格納したデータの中から、「A」で始まって途中は何があるかわからないが最後が「E」という文字列を探したい場合、次のように記述することで、条件にマッチする文字列を見つけることができます。 $str =~ /A.*E/; 上記では、ドット( . )が改行以外の1文字を表し、アスタリスク( * )がその任意の文字の0回以上の繰り返しを意味します。このように、正規表現において特殊な働きを持った文字を正規表現演算子、またはメタ文字と呼びます。また、=~ はパターン結合演算子と呼ばれ、「左辺の値から右辺の値を検索する」という意味があります。 正規表現

    正規表現 - 2部 Perl言語仕様 - [SMART]
  • SkRegExp | SkRegExp は Delphi 用の正規表現ユニットです

    ■ SkRegExpの特長 SkRegExp は Delphi 用の正規表現ユニットです。Delphi 2005 から XE8 に対応しています。 Pure Delphi SkRegExp は全て Delphi で書かれています。既存の正規表現ライブラリをDelphi に移植したものではなく、ゼロから Delph で書いています。 No DLL 外部のライブラリは必要ありません。 Perl 5.14 Compatible Perl 5.14 互換の正規表現をサポートしています。 (SkRegExp version 2.6 以前は Perl 5.10 互換) 正規表現構文の一覧はこちらをどうぞ。 Unicode Ready SkRegExp は文字列を全て Unicode で処理しています。 Delphi 2007 以前の ANSI 版 Delphi は WideString で、Delph

  • 正規表現で楽々コード置換 - give IT a try

    会社で紹介した正規表現の入門的なテクニックをこっちにも載せておきます。 まずは例題から ちょっと訳あって、これまで型付けDataTableを使って書いていたロジックを、型無しのプレーンなDataTableに書き換える必要が出てきました。 イメージ的にはこんな感じです(もちろん説明のためにかなり簡略化しています)。 // 変更前 BookShopDataSet.BookTable table = FindBooks(); BookShopDataSet.BookTableRow row = table[0]; Assert.AreEqual("詳説 正規表現", row.Title); Assert.AreEqual("ジェフリ− E.F.フリ−ドル", row.Author); Assert.AreEqual("オライリージャパン", row.Publisher); // 他にもたくさんの

    正規表現で楽々コード置換 - give IT a try
  • 1