タグ

プログラミングと正規表現に関するiwwのブックマーク (9)

  • Perl の正規表現でマッチした文字列自体を取得する今昔 - Qiita

    バージョンごとの表の絵文字は以下の意味です 使用可能 使用可能だが致命的な性能劣化を招くため忌避される (空欄) 対応前バージョン Perl 5.20 以降なら $& による方法が一番簡単ですが、それ以前のバージョンでの経緯を知っているチームメンバーから拒絶反応を受ける可能性もあります。そのプログラムが今後 Perl 5.20 より前のバージョンで実行する必要が一切ないと言えるなら $& でも問題ないと思いますが、外部公開するモジュールなどの場合は use v5.20 等で明言しないのであれば $& の使用は避けておくべきでしょう。 それぞれの手法 マッチ全体をキャプチャのカッコでくくって $1 で参照する方法 今も伝統的に行われている、マッチ全体をキャプチャのカッコでくくる方法です。 # $body から a か A で始まる単語を取り出して $match に入れる # \b は単語境界

    Perl の正規表現でマッチした文字列自体を取得する今昔 - Qiita
    iww
    iww 2020/11/09
    『Perl 5.20 ではこの問題が完全に解決され、$& などを使うことによる性能低下問題はなくなりました。』 そうだったのか
  • jQuery の hasClass で正規表現マッチを使えるようにする。 - それマグで!

    jQuery の hasClass で正規表現マッチを使いたい。 正規表現でマッチするクラスを探したい $("div").hasClass( /area/ ) とかやりたいわけです。 jQueryのプラグイン、、ではなく関数の上書き hasClass のコードを上書きする。 $(document).ready(function(){ $.fn.hasClass = function (e) { var t = " " + e + " ", n = 0, r = this.length; for (; r > n; n++) { if (1 === this [n].nodeType && (" " + this [n].className + " ").replace(/\W/, " ").indexOf(t) >= 0) { return!0; } else if ( (e instan

    jQuery の hasClass で正規表現マッチを使えるようにする。 - それマグで!
  • 正規表現(肯定先読み、否定先読み、肯定戻り読み、否定戻り読み) - satosystemsの日記

    自分のためにメモ。 (肯定|否定)(先読み|戻り読み)、覚えづらい。 正規表現 パターン(boost::regex) 説明 肯定先読み (?=regex) regex に一致する文字列が始まる位置にある検索文字列と一致する。一致した文字列は記憶されず、後で使用することはできない。 たとえば "Windows (?=95|98|NT|2000)" は、"Windows 2000" の "Windows" には一致するが、"Windows 3.1" の "Windows" には一致しない。 先読み処理では、読み進まれた文字は処理済みとは見なされない。一致の検出後、次の検索処理は先読みされた文字列の後からではなく、一致文字列のすぐ後から開始される。 否定先読み (?!regex) regex に一致しない文字列が始まる位置にある検索文字列と一致する。一致した文字列は記憶されず、後で使用することは

    正規表現(肯定先読み、否定先読み、肯定戻り読み、否定戻り読み) - satosystemsの日記
  • 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found

    2009年03月19日18:00 カテゴリLightweight Languages 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ ああ、まただよ... かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜メールアドレスは厳密にチェックしようとするとなかなか難しいのですが、簡単なチェックだったらこれでOKぽいですね。 /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$

    「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found
  • awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ

    今までテキスト処理などでワンライナーを使うときはperlを使っていた.Perlを先に覚えた身としてはawkやsedは過去の産物だと思い込んでいた.awkの方が簡潔に書けるケースに出くわしたことをきっかけにawkを勉強してみたら単なわず嫌いだったことに気が付いたのでポイントをまとめてみる. なおプログラミング言語としてはAWKという表記が正しく (Aho, Weinberger, Kernighanの頭文字! ということだけは以前から知っていた),オリジナル処理系のことをawkと呼ぶのだろうけれど,今回は処理系の違いは気にしないのでawk, nawk, gawkの違いは気にしないことにした.ていうか詳しく知らない. 「awkってなんぞ?」という方が対象読者.スクリプト言語と正規表現の基礎知識が少しでもあれば,たぶんすぐに使えるようになると思う.awkを一度でも使ったことがある人には新しい情

    awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ
    iww
    iww 2011/09/20
    なんというわかりやすさ
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
  • メールアドレスの正規表現

    更新日 2019/5/3 戻る Perlメモへ - メールアドレスの正規表現へ Perl正規表現雑技へ 更新履歴 2019/05/03 「制御文字を除去する」「参考文献」RFC5321日語訳のリンク修正 2009/08/13 $atextのバグ修正 2009/05/06 「正規表現を簡略化する」追記 2009/04/29 「旧形式を削除する」追記 2009/04/13 「IPアドレスを除去する」追記 目次 RFCに準拠したメールアドレスの正規表現 コメントと空白文字を除去する 制御文字を除去する IPアドレスを除去する 旧形式を除去する 正規表現を簡略化する 参考文献 RFCに準拠したメールアドレスの正規表現 メールアドレスについては RFC 5322 に addr-spec として書かれています. 下記は RFC 5322 に従って導き出した正規表現です. 14,277バイトあります.

  • Computer Science C

    文字列の検索や置換は情報処理の基操作のひとつである. たとえば, 電話番号のリストからフリーダイヤルだけを取り出す イニシャルが「C. P.」の人を検索する 「。」を「.」に置き換える 拡張子が「.doc」のファイルをすべて「.txt」に置き換える などといったものである. 正規表現は, このような応用にとても役に立つ, 文字情報を柔軟かつきめ細かく扱うための表現方法である. いくつか例をあげよう. 0120.* C.* P.* それぞれ,「0120 で始まる文字列」 「スペースで区切られた, C で始まる文字列とP ではじまる文字列」 を意味している. ここに現れた「.」や「*」は, それぞれ「任意の一文字」「直前の文字の(0 回以上の)繰り返し」を あらわす. このように, 正規表現において特殊な意味を担った文字を メタキャラクタとよぶ. 上にあげた表現は, それぞれ

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1