タグ

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

  • 正規表現 (Regex) を利用してCSVファイルやTSVファイルを読み込む (C#プログラミング)

    正規表現 (Regex) を利用してCSVファイルやTSVファイルを読み込むコードを紹介します。 概要 Regex.Split()メソッドを利用すると、CSVをカンマの区切り文字でパージングすることができます。 正規表現の作成 基は区切り文字となる「,」(カンマ)を探す正規表現を利用します。 下記の正規表現式では「,」を検索できますが、「"」(ダブルクォーテーション)内のカンマも検索されてしまします。 , 「"」で囲まれた内部のカンマを除外するため以下の条件を追加します。 カンマ以降の文字列に「"」が無い カンマ以降の文字列に「"」が偶数個ある 具体例として文字列の途中で「,」が見つかった状態で「,」以降の文字列が分かっている場合、下記の例では先頭の「,」は区切り文字のカンマと判定できます。

    正規表現 (Regex) を利用してCSVファイルやTSVファイルを読み込む (C#プログラミング)
  • PHP: preg_match - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    babydaemons
    babydaemons 2013/05/22
    返り値がカオスだ。。。"preg_match() は、pattern が指定した subject にマッチした場合に 1 を返します。 マッチしなかった場合は 0、エラーが発生した場合は FALSE を返します。"
  • PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis

    できるだけ正確な記述を目指していますが、誤りがありましたら、お知らせ願います。 (最終更新: 2013/3/29 11:22) 正規表現の種類 まず、PHP には以下の 3種類の正規表現があります。 Perl 互換の正規表現 (pcre) mbstring の正規表現 (mbregex) POSIX 拡張正規表現 (regex) このうち、regex は バイナリセーフでない 日語は扱えない PHP 5.3 で非推奨 なので使わない方がいいでしょう。見つけたら、随時 pcre か mbregex で書き直しましょう。 Perl 互換の正規表現 (pcre) 正規表現エンジンは Perl の「PCRE」 日語は UTF-8 のみ扱える UTF-8 を使う場合は、パターン修飾子に u を指定する 文字クラスはロケールの影響を受ける PHP: 文字クラス - Manual 処理の制限値 (p

    PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis
    babydaemons
    babydaemons 2013/05/22
    うぅ、カオスだ
  • Perl の正規表現のオプション m と s

    Landscape トップページ | < 前の日 2003-03-24 2003-03-25 次の日 2003-03-26 > Landscape - エンジニアのメモ 2003-03-25 Perl の正規表現のオプション m と s 当サイト内を Google 検索できます * Perl の正規表現のオプション m と sこの記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Perl] パターンマッチのオプションをちょっとおさらい。 試した環境は TurboLinux 6.5 Server の perl version 5.005_03 built for i386-linux perldoc perlre も参考になる。 - m オプション: $str を複数行として扱う。m オプションを必要とするのは、文字列中に改行文字を含み、 かつ正規表現中に ^ や

    babydaemons
    babydaemons 2012/08/18
    完全にsオプションを忘れてた。
  • 正規表現 - 2部 Perl言語仕様 - [SMART]

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

    正規表現 - 2部 Perl言語仕様 - [SMART]
    babydaemons
    babydaemons 2012/08/18
    "文字列のグループ化と後方参照"の"m|<(.*?)>.*?</\1>|"が便利!
  • http://gdgdlog.net/log/show/168

    babydaemons
    babydaemons 2011/11/08
    あー、これも欠陥正規表現だぁ。orz
  • URLバリデート正規表現 - せとっちの備忘録(技術系)

    (https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+) 正確には、 \b(?:https?|shttp)://(?:(?:[-_.!~*'()a-zA-Z0-9;:&=+$,]|%[0-9A-Fa-f ][0-9A-Fa-f])*@)?(?:(?:[a-zA-Z0-9](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?\.) *[a-zA-Z](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?\.?|[0-9]+\.[0-9]+\.[0-9]+\. [0-9]+)(?::[0-9]*)?(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f] [0-9A-Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A- Fa

    URLバリデート正規表現 - せとっちの備忘録(技術系)
    babydaemons
    babydaemons 2011/11/08
    これ書いた人凄いww
  • 正規表現:正しいURLかどうか調べる - phpspot

    <?php $text = "http://www.yahoo.co.jp/"; if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) { echo "正しいURLです"; } else { echo "正しくないURLです"; } ?> <?php function is_url($text) { if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) { return TRUE; } else { return FALSE; } } ?>

    babydaemons
    babydaemons 2011/11/08
    この正規表現、ちょっと手抜きじゃない?
  • 欲張り正規表現 - Atzy-&gt;getLog()

    分かっているようで分かっていない正規表現の欲張り戦略。 欲張りとバックトラック 基的には正規表現(の実装)は欲張りです。できるだけ長い文字列をマッチしようと心がけます。しかし、それによってマッチに失敗しそうであったときにはしぶしぶ手放します。 と、これが何を意味するのか。 単純な例 正規表現 A* マッチ対象 AAAAAAAAAAAAAAAAAAAAA A*のマッチ箇所 AAAAAAAAAAAAAAAAAAAAA (全体にマッチする)A* というのは、0文字以上のAですから、AAAやらAやら、あるいはAの前の空の部分にさえマッチしますが、欲張って最大限にマッチしようとします。 少しだけ複雑に 正規表現 \w*\w マッチ対象 AAAAA \w*\wのマッチ箇所 AAAAA (全体) \w*のマッチ箇所 AAAA (4文字分)\w*\wという正規表現です。この場合は、\w*は1文字分だけ「

    欲張り正規表現 - Atzy-&gt;getLog()
  • テキストの遊園地

    ここはテキスト処理のテクニックをみがくための遊園地です。誰でも、コンピュータを触り始める前は、何かすごい、魔法の箱がうちにやってきたように考えて期待するもんですが、いざ使い始めてみると、こんなこともできん、あれも無理、ということが、いやというほどわかってくる。その結果、多くの場合、期待した魔法の箱は、早々と、単なるゲーム機や文章の清書機といういわゆるワープロ専用機の代替品になるのは、まだいいほうで、年に一回の年賀状印刷機になったりします。いわばお高くとまった料理店みたいなもんで、メニューにないものは一切出しません、と傲慢に構えているのがコンピュータの正体だと、だんだんわかってくるわけです。 プログラミングは、いわば、メニューにないものをコンピュータにムリヤリやらせる方法です。これまでは、エラそうに構えていた料理店の店主に、お客の要求に合わせて料理をださせる方法だといってもよいでしょうね

  • Perlメモ

    複数のプロセスでロック状態が異常であると判断し,そのうちの 1つがロックを解除したことにより,別のプロセスがロックしたにもか かわらず,先ほどロック状態が異常であると判断したプロセスによってこの正常なロッ クを解除されてしまう可能性があります. この方法の問題点は,異常なロック状態を解除する操作が正常なロック状態をも 解除できてしまうことにあります.逆に言えば,異常なロック状態を解除する操作に よって正常なロック状態を解除できなければ問題ないわけです.そのためにはどうす ればよいのか? 答えはロック状態が常に変化していけば よいということです.そして,これを実現するのに都合がよいのが rename による方法になります. 最初のスクリプトで説明しますと,ロックファイルが lockfile という 名前のときがロックが解除されている状態で,lockfile987654321 のよう に後ろに

    Perlメモ
  • 1