タグ

regexpに関するlesamoureusesのブックマーク (20)

  • Perl で簡単にパーザを書く - tokuhirom's blog

    パーザを書こうという場合、Parse::RecDecsent のようなモジュールを使うのが一般的だが、Perl5 の正規表現は強力すぎるため、そんなものに頼らなくても超絶簡単にパーザを実装することが可能だ。 以下に、四則演算のパーザを示す。 use 5.018000; package Calc { use Carp (); sub parse { local $_ = $_[1]; _parse_expr(); } sub err { my ($msg) = @_; my $ret = join('', $_, "\n", (" " x pos()) . "^\n", $msg, "\n", ); Carp::croak $ret; } sub _parse_expr { my @nodes; until (/\G\s*\z/gc) { my $m = _parse_add() or do

    lesamoureuses
    lesamoureuses 2014/01/22
    \Gが何かわからなかったけどperlretutにあった。なるほど "\G アンカーは直前のマッチングで残った部分にマッチングします" http://perldoc.jp/docs/perl/5.18.1/perlretut.pod
  • perl5180delta - perl v5.18.0 での変更点 - perldoc.jp

    This document describes differences between the v5.16.0 release and the v5.18.0 release.

    lesamoureuses
    lesamoureuses 2014/01/05
    \cK ってなんだろうと思ったら垂直タブなのか
  • プログラミング言語における正規表現リテラルの必要性について

    Twitterに書いたことのまとめです。 プログラミング言語の仕様の一部として正規表現リテラルを提供することの得失について、JavaScriptを例に説明します。 ■より簡潔なコード 言うまでもありませんが、正規表現リテラルを使った方が簡潔なコードになります。 (new RegExp("abc")).exec(s) // リテラルを使わない場合 /abc/.exec(s) // リテラルを使った場合 また、正規表現リテラルがない場合は、文字列リテラルとしてのエスケープと正規表現としてのエスケープが二重に必要になる結果、コードの保守性が低下します注1。 new RegExp("\\\\n"); // リテラルを使わない場合 /\\n/ // リテラルを使った場合 ■エラー検出タイミング 正規表現リテラルがない場合、実際にその正規表現が評価されるまで記述エラーを検出することができません。正規表

    lesamoureuses
    lesamoureuses 2013/12/18
    “正規表現に対しては「単純な文字列処理関数より遅そう」という意見を目にすることもありますが、そのような一般化は誤りです”
  • 开云·体育(kaiyun)(中国官方网站IOS/安卓通用版

    系统提示 您访问的页面未找到, 5秒后自动跳转到首页

    lesamoureuses
    lesamoureuses 2010/03/13
    >NSPredicateでは正規表現もサポートしていて単にマッチングだけを目的とするのであれば、RegexKiやOgreKitを導入する必要はありません。
  • perlreref

    名前 説明 演算子 構文 エスケープシーケンス キャラクタクラス アンカー 量指定子 拡張構造(EXTENDED CONSTRUCTS) 変数 関数 用語 Titlecase AUTHOR SEE ALSO THANKS 名前 perlreref - Perl の正規表現のリファレンス 説明 ドキュメントは、Perl の正規表現のクイックリファレンスです。 完全な情報は、perlre と perlop、また、ドキュメントの ”SEE ALSO セクションを参照してください。 演算子 =~ 正規表現が適用される変数を決定します。省略された 場合には、$_ が使われます。 $var =~ /foo/; !~ 正規表現が適用される変数を決定し、マッチの結果を反転します。 マッチが成功すれば偽を返し、失敗すれば真を返します。 $var !~ /foo/; m/pattern/igmsoxc パ

  • regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found

    2009年03月09日00:30 カテゴリLightweight LanguagesTips regexp - ^$でなくて\A\zを使おう まずは回答から。 正規表現で「制御文字以外」のチェック - ockeghem(徳丸浩)の日記 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。 こういう時には、「全文字がOKならOK」と考えるのではなく、「一文字でもNGならNG」と考えると楽になります。それは「スペースと非制御文字以外」なのですから、/[^ \S]/が求めていた正規表現で、=~ではなく!~が使うべき演算子ということになります。全角スペースもOKにしたければ、/[^ \x{3000}\S]/。[追記参照] [Run via Codepad] #!perl -

    regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found
  • Perl正規表現雑技

    このページは Perl5.6 を対象としています. perl スクリプトは EUC-JP で書かれることを想定しています. このページは 正規表現メーリングリスト を参考に,私が独自にメモとしてまとめたものです. このページの正規表現やスクリプトについての詳しい説明, わかりやすい説明はおそらくできません. このページに書かれているスクリプトは, 個人の責任において実行してください. このページに書かれているスクリプトの 利用・改造は自由 です. その際はどこかにこのページの URI( http://www.din.or.jp/~ohzaki/regex.htm )を参考として記述していただければ幸いです(任意). ご意見・ご感想・ご要望などは にお願いします.こう書いた方がいい, 動かん,わからん,バグってる,これ書け,などなどお待ちしています. このページへの リンクは自由 に張ってく

  • use utf8なら\sは全角スペースもmatchする : blog.nomadscafe.jp

    use utf8なら\sは全角スペースもmatchする Femoで全角スペースでもTagのsplitができるように、と調べているのですが、 use utf8; をしている場合、\sは全角スペースにもmatchするようです。初めて気がついた。 #!/usr/bin/perl use strict; use warnings; use utf8; binmode STDOUT => ":utf8"; my $str ="全角 ス ペ ー ス が入った テキ\tス\nト"; print join ",",split /\s/,$str; の出力は 全角,ス,ペ,ー,ス,が入った,テキ,ス,ト となります。 perlretut - Perl の正規表現のチュートリアルによると、これも知らなかったのですが、 \sは空白キャラクタで [\ \t\r\n\f]を表します なのですね。 utf8の場合は、

    lesamoureuses
    lesamoureuses 2008/08/29
    /\s+/でヒットしないなぁと思ったら+のせいだった/[\s]+/で行けた
  • 取説 正規表現

    nanto_vi, 2008-07-19 自己紹介 nanto_vi (TOYAMA Nao) Days on the Moon Twitter 目次 よくある間違い 正規表現オブジェクトのメソッド グローバルマッチ 文字列のメソッド まとめ よくある書き方 var str = "OSC Kansai 2008"; var year = 0; if (str.match(/(\d+)/)) { year = Number(RegExp.$1); } 何がよくないか RegExp コンストラクタのプロパティはグローバル変数 Mozilla 2 (Firefox 4) では削除されるかも? if (str.match(/(\d+)/)) { doOtherThing(); year = Number(RegExp.$1); } function doOtherThing() { "Firefo

    lesamoureuses
    lesamoureuses 2008/07/26
    >RegExp コンストラクタのプロパティはグローバル変数
  • javascript - String.prototype.quotemeta() があればいいんじゃね? : 404 Blog Not Found

    2008年05月30日17:15 カテゴリLightweight Languages javascript - String.prototype.quotemeta() があればいいんじゃね? 早い話、PerlにおけるquotemetaがあればOK、と。 文字列から正規表現を生成するときのメモ - IT戦記 という感じで、バックスラッシュをいっぱい書かなければいけないのでperldoc -f quotemeta quotemeta Returns the value of EXPR with all non-"word" characters backslashed. (That is, all characters not matching /[A-Za-z_0-9]/ will be preceded by a backslash in the returned string, reg

    javascript - String.prototype.quotemeta() があればいいんじゃね? : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/06/02
    $&初めて知った、と思ったら使わない方が良いらしいhttp://blog.livedoor.jp/dankogai/archives/50940023.html>$&使えば括弧使う必要ないかと。this.replace(/\W/g, '\\$&')
  • 文字列から正規表現を生成するときのメモ - IT戦記

    base2 のコードを見ていたら便利そうだったのでメモ http://code.google.com/p/base2/ 文字列から正規表現を作るとき RegExp("^hoge$"); // hoge とマッチ RegExp("^\\\\$"); // \ とマッチ RegExp("^\\[hoge\\]$"); // [hoge] とマッチ という感じで、バックスラッシュをいっぱい書かなければいけないので 以下のような関数を用意してやって function _r(str) { return (str + '').replace(/([\/()[\]{}|*+-.,^$?\\])/g, "\\$1"); } こんな感じで match(RegExp('^' + _r(prefix) + 'unko'), 'unko'); めもめも

    文字列から正規表現を生成するときのメモ - IT戦記
    lesamoureuses
    lesamoureuses 2008/06/02
    function _r(str) {return (str + '').replace(/([\/()[\]{}|*+-.,^$?\\])/g, "\\$1");}match(RegExp('^' + _r(prefix) + 'unko'), 'unko');
  • 正規表現ベースの字句解析器を書くときは - 最速チュパカブラ研究会

    正規表現ベースの字句解析器を書くときは、narcissusというJSベースのJS処理系のコードを見るといいです http://mxr.mozilla.org/mozilla/source/js/narcissus/jsparse.js 面倒な正規表現の模範解答が載ってます。下手に自分で考えて誤爆するより、一流の人が書いたものを使いましょう 正規表現リテラル /^\/((?:\\.|[^\/])+)\/([gimy]*)/ 文字列(ダブルクォート、シングルクォート共)/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/ → 訂正 Cスタイルコメント(一行、ブロック共) /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/ ↓narcissusについてはyukobaさんのプレゼンを(去年のShibuya.es) http://accelart.jp/shibuyajs

  • txt2re 文章から対話的に正規表現を作れる支援サービス

    一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作 […] 一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作りたいのかを推測して提案してくれるというサービス。 サンプルで入っているテキストでは、日付(の英語表現)のあとに引用文で英文、という入力。 入れたものが要素ごとに分解された上で、まとまった部分が「文字列」なのか「月」なのか「アメリカの州」なのか、といった推測がされて、選択肢としてリンク表示される。 「ここは月のつもりだった」ということでMonthを

    txt2re 文章から対話的に正規表現を作れる支援サービス
    lesamoureuses
    lesamoureuses 2008/04/09
    なにも考えないでやるには面白いかも
  • RegExr Flashによる正規表現チェックFlashツール | 秋元@サイボウズラボ・プログラマー・ブログ

    先に紹介したVisual REGEXPの関係で「こんなのものあるよ」と出てきたのか、Flashでできている正規表現チェッカがdel.icio.us/popularにあがっていた。 RegExr こちらのは、マッチしているところを青く囲んでくれるだけで、正規表現のどの部分がどこに対応してるかまでは示してくれない。が、入力のしやすさはこちらのほうがいいかもしれない。右側に簡易的な正規表現のマニュアルもついている。 via del.icio.us/popular この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

    RegExr Flashによる正規表現チェックFlashツール | 秋元@サイボウズラボ・プログラマー・ブログ
  • Visual REGEXP 正規表現のマッチング確認ができるクライアントツール | 秋元@サイボウズラボ・プログラマー・ブログ

    Visual REGEXPは、上の段に正規表現を入れて、下の段にいろいろな文字列を入れると、文字列のどの部分が正規表現のどの部分にマッチしているのか、というのを色づけして示してくれるツール。 Tcl/Tk製で、Windows向けのexeパッケージも配布されている。Windows版でためしてみた。 書いた正規表現をいろいろなサンプルで確認する際に楽でいいかもしれない。 ネットがつながっていれば、Rex Vとかでもいいような気はするけど、クライアントツールなのでネットがつながらないところでも使えるのはいいかもしれない。 ただ、文字列群から逆に正規表現案を生成する機能がエラーで動かなかったり、正規表現を書くボックスで外から中へのコピペができなかったり、あまりUIが使いやすくない。このへんは今後に期待か。 via del.icio.us/popular この記事は移転前の古いURLで公開された時の

    Visual REGEXP 正規表現のマッチング確認ができるクライアントツール | 秋元@サイボウズラボ・プログラマー・ブログ
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • regexp - 全角英数字を半角に : 404 Blog Not Found

    2008年01月14日03:30 カテゴリLightweight Languages regexp - 全角英数字を半角に きっかけは、はてなハイク。 自分と根的にあわない人 - fmht7 - はてなハイク PCで英数字をダブルバイトで入力する人 禿同、しかし人を憎みたくなかったので。 Perlではお茶の子さいさい。 perl - dankogai - はてなハイク perl -CIO -ple 'tr/\x{FF01}-\x{FF5e}/\x21-\x7e/' は脊髄でひねり出せた。 どうせならJavaScriptでもやってみよう、ということでひねり出したのがこちら。 !釤#$%&釻()*+,−./ 0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_` abcdefghijklmnopqrstuvwxyz {|}〜 var fasci

    regexp - 全角英数字を半角に : 404 Blog Not Found
  • JavaScriptの正規表現で変数? - おふぃす・ぞんち開発日記

    昨日の続きで、今日は技術的なお話。 JavaScriptの正規表現で変数使う時ってどうするんだろね・・・。 今回は、入力フォームの変数としてimage1,image2・・・にマッチする物を見つけたかったのね。それだけなら、 aaa.match(/^image([0-9]+)/) でいいんだけど、画像(image)と拡大画像(limage)を共通処理にしたかったんで、この正規表現の「image」の部分を可変(変数)にしてマッチさせたいってわけ。Perlだったら、 $aaa =~ /^$image[0-9]+/ と変数「$image」とでもしてぶち込んじゃえばいいんで、非常にわかりやすいし便利。JavaScriptで同じことしようったって、変数に「$」がついてて区別出来るわけではないので、入れようがない。 調べてみたら、正規表現オブジェクトというのがあるらしい・・・ re = new RegE

    JavaScriptの正規表現で変数? - おふぃす・ぞんち開発日記
    lesamoureuses
    lesamoureuses 2007/12/04
    正規表現の時に変数を遣いたかったらRegExp
  • 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用テンプレートエンジン
    lesamoureuses
    lesamoureuses 2007/10/31
    htmlタグのエスケープは文字クラスとhashでやるのがいい
  • Perlメモ

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

  • 1