タグ

regexに関するtomoyaのブックマーク (15)

  • A Practical Guide to Regular Expressions (RegEx) In JavaScript

    tomoya
    tomoya 2018/08/17
    JSの正規表現
  • Emacs Lispの正規表現における \A, \z - Shohei Yoshida's Diary

    s.elのソースを読んでいたとき、発見したので 記事に残しておきます。 "\A"というのは文字列の先頭、"\z"というのもは文字列の末尾にマッチする アンカーです。"^", "$"は行頭、行末を意味し、1列しかない文字列だと 同じ意味ですが、複数行を扱うとき意味が変わってしまいます。 "\A" = "\`", "\z" = "\'" "\A"に相当するものが、"\`"(バックスラッシュ + バッククォート)、 "\z"に相当するものが、"\'"(バックスラッシュ + クォート) 文字列に現れる場合は "\"は "\\"になりますので、実質 "\\`", "\\'" になります。 例 "\\`"と "^"で結果が違うことがわかります。 (let ((str "aa\naa")) (replace-regexp-in-string "\\`aa" "bb" str)) ; => "bb\naa

    Emacs Lispの正規表現における \A, \z - Shohei Yoshida's Diary
  • emacsの正規表現をもっと便利に使う - $shibayu36->blog;

    emacsで正規表現を使って置換したいみたいな要求はそれなりにあると思いますが、それをやろうとするとemacsの正規表現のバックスラッシュ地獄みたいなものに遭遇することがよくあります。そんな時に使いたいtipsを少しだけ紹介します。 re-builderを使う emacsにはre-builderというものがあって、書いている正規表現のマッチ状況をリアルタイムにプレビューすることが出来るツールが存在します。M-x re-builderして、いろいろ書いてみると現在のマッチ状況がプレビューされます。 実行中にC-c C-wすればその正規表現をコピーでき、C-c C-qで終了出来ます。emacsにはいろいろな正規表現syntaxがあるので、C-c C-iで切り替えもできます。 詳しくは以下の記事を見るとよいでしょう。 Emacsの正規表現編集モード re-builder とややこしいバックスラッ

    emacsの正規表現をもっと便利に使う - $shibayu36->blog;
    tomoya
    tomoya 2013/01/16
    そして、紆余曲折を経て (require 'rx) によって、S式正規表現の道へ。
  • Emacsの正規表現編集モード re-builder とややこしいバックスラッシュ問題について。 - こせきの技術日記

    Emacsの re-builder を使うと、正規表現にマッチする部分をリアルタイムにカラー表示してくれる。 Emacs で正規表現を使うなら re-builder を使おう - Higepon’s blog - Mona OS and Mosh re-builder: the Interactive regexp builder | Mastering Emacs M-x re-builder 起動 C-c C-q 終了便利。便利なんだけど、空白にマッチする正規表現を書こうとして混乱した。 re-builder デフォルトはreadシンタックス。 re-builder にはシンタックス切り替えというのがある。 re-builder: the Interactive regexp builder | Mastering Emacs C-c TABでシンタックスを選択する。シンタックスは次の

    Emacsの正規表現編集モード re-builder とややこしいバックスラッシュ問題について。 - こせきの技術日記
    tomoya
    tomoya 2011/07/11
    シンタックスの切り替えについて
  • 非 ASCII 文字を含む行を検出 - mooz deceives you

    ファイル中にある「非 ASCII 文字」を含む行を検出したければ、次のコマンドで。 grep '[^ -~]' file 仕組みは ASCII文字コード - IT用語辞典 を見ると一目瞭然。 まずホワイトスペースからチルダまでを ASCII 文字とみなし、 [a-z] のノリで [ -~] とする。これで ASCII 文字からなる文にマッチする正規表現が出来る。 今回は「非 ASCII 文字」が欲しかったので ^ をつけて条件を逆転させ、完成。 ソースコード中からマルチバイト文字を取り除きたいときなどに便利。コメントを全部英語化したいときとかね。 追記 Emacs 使いの人なら M-x rgrep でこの正規表現を使うと、プロジェクトのマルチバイト文字を一括検索出来て便利。

    非 ASCII 文字を含む行を検出 - mooz deceives you
    tomoya
    tomoya 2009/08/15
  • 貪欲なlooking-back関数 - Functional Emacser

    通常、後方へのびる正規表現マッチでは極力マッチしないようにに動作します。そのため\\sw+などで単語を拾おうとしても最後の一文字だけ拾われてしまいます。looking-back関数の第三引数にはgreedyというオプションが用意されており、これをtにしてやると後方正規表現でも貪欲にマッチしてくれるようになります。 (and (looking-back "\\sw+") (match-string 0)) ; => o (and (looking-back "\\sw+" nil t) (match-string 0)) ; => hello looking-back関数の実装は次のようになります。すごいことやってますが気にしない方向で。 (defun looking-back (regexp &optional limit greedy) "Return non-nil if text b

    貪欲なlooking-back関数 - Functional Emacser
  • Webtekoで正規表現について発表したので資料を公開する - mollifier delta blog

    06/06(土)に神戸でWebtekoという勉強会が開かれた。詳細は告知ページ参照。そこで正規表現について発表したので資料を公開する。 補足 後半は ^.*/ と言う正規表現が /usr/bin/zsh にマッチする様子を例にして、 * の「欲張り」具合とバックトラックについて説明した。 こんな感じ。 まとめ 正規表現の話をすると、「メタ文字一覧とその解説」とか「処理系ごとの微妙な差異」とかになりがちだと思う。 そういう細かい話をし出すときりがないので、今回はあえてメタ文字の説明を絞った。今回出てきたメタ文字は7種類だけで、 | も () も説明しなかった。 なのでこの発表を聴いただけでバリバリ正規表現を使いこなせるようになるわけでもないし、ちょっと絞りすぎたかな、とも思ってる。 むしろ今回のメインは、後半のマッチング メカニズムの部分。こういう話はWeb上の解説でもあんまり見ないし、基

    Webtekoで正規表現について発表したので資料を公開する - mollifier delta blog
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
    tomoya
    tomoya 2009/03/10
    内容もさる事ながら、日本語も美しい。
  • 便利なツール Emacs らくらく入門/syntax-class

    というようになっています。 それで得られる説明の具体的な表示例は、 例えば次のようなものです。 The parent syntax table is: C-@ .. SPC which means: whitespace ! . which means: punctuation " " which means: string # . which means: punctuation $ .. % w which means: word & _ which means: symbol ' . which means: punctuation ( () which means: open, matches ) ) )( which means: close, matches ( * .. + _ which means: symbol , . which means: punctuation

  • GNU Emacs Lisp Reference Manual - 正規表現のシンタックス

    正規表現は、"その中のいくつかの文字が特別な構成要素であり、それ以外のものは通 常の文字である" というシンタックスを持っています。通常の文字は、(その文字には マッチし、それ以外のものにはマッチしない) 単純な正規表現です。特別な文字は `$', `^', `.', `*', `+', `[', `]', `\' で、特別な文字が(新たに)定義されること はありません。 (正規表現中の)この外の文字は(全て)`\' がその前に置かれない限 り、通常の文字となります。 例えば、`f' は特別な文字ではありません。これは通常の文字です。`f' は、ストリン グ `f' にマッチし、その他のものにはマッチしない正規表現です(これはストリング `ff' にはマッチしません)。同様に、`o' は `o' のみにマッチする正規表現です。 (それがどのようなものであっても) 2 つの正規表現 a と

  • Emacsにおける正規表現の文法 - 告発\金沢地方検察庁\最高検察庁\法務省\石川県警察御中

  • どうやら、Emacs の replace-regexp はすごい事ができるらしい - KoshigoeBLOG

    今までは、(癖のある)正規表現でただ置換する事しか考えた事がなかったわけですが。 新Emacsの強力な置換機能を使いこなす - ZDNet Japan 行番号みたく、行頭に連番を挿入したい場合も、replace-regexp を使えば簡単にできました。 M-x replace-regexp Replace regexp: ^\(\) Replace regexp ^\(\) with: \,(1+ \#) まじめに replace-regexp の使い方やら機能やらを調べた事がなかったので、まったく知りませんでした。ぷろぐらまぶるなんですね。 なんか、ワクワクしてきた! 連番生成を考えた場合は、replace-regexp だとあらかじめ置換対象を用意しなければならないので、最適な方法ではないかもしれません。↓では、また別の方法が紹介されてます。 Emacsで連番を挿入する方法 - ’(r

  • 新Emacsの強力な置換機能を使いこなす - ZDNet Japan

    6年ぶりの大きなアップデートとなったEmacs 22.1、CVS先端の開発バージョンを使っているユーザは、なんとなく見過ごしてしまっているかもしれないが、新しい機能には便利なものが多い。ここでは、特に強化された置換機能について取り上げる。使いこなせば強力なので、是非使ってみて欲しい。 筆者など : 後藤大地(オングス) チャネル名 : ZDNetオープンソース URL : http://japan.zdnet.com/oss/story/0,3800075264,20350805-2,00.htm 6年ぶりの大きなアップデートとなったEmacs 22.1、CVS先端の開発バージョンを使っているユーザは、なんとなく見過ごしてしまっているかもしれないが、新しい機能には便利なものが多い。ここでは、特に強化された置換機能について取り上げる。使いこなせば強力なので、是非使ってみて欲しい。 re

  • TEXTdrop|翻訳・オンラインカジノ 日本円のプログラミング

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • PHPでメールアドレスを確認する「正しい方法」(Linux Journal誌の記事より) - J0hn D0e の日誌

    屋で立ち読みしてたら、Linux Journalって雑誌に "Validate an E-Mail Address with PHP, the Right Way" って記事が載っているのを発見したので、簡単に要約を。 まず、以下のメールアドレスは「正しい」アドレスである、と紹介。 Abc\@def@example.com customer/department=shipping@example.com !def!xyz%abc@example.com これは、RFC3696からの引用。 RFC3696は、Application Techniques for Checking and Transformation of Names (名前の検査と変換のアプリケーション技法) ってやつで、そのなかに、 "Restrictions on email addresses" って章があるみたい。

    PHPでメールアドレスを確認する「正しい方法」(Linux Journal誌の記事より) - J0hn D0e の日誌
  • 1