Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

regexpに関するdecoy2004のブックマーク (4)

  • Emacs の正規表現の置換・検索 ( RegExp replace or search ) を賢くかわいくしてあげよう - ハトネコエ Web がくしゅうちょう

    Emacsの正規表現が上手く使いこなせない・・・。 いや、私が使いこなせないんじゃない! Emacs が悪いんだ!! ……と思ったので改造です。 頭おかしい! Emacs の正規表現 Emacs の正規表現は独特すぎて頭おかしいです。他のに慣れてると全然使いこなせません。 RegExp replace (正規表現での置換)のときも、 どの文字が正規表現に引っかかっているかわからず結果、 Replaced 0 occurrences の一文を見てガッカリすることになります。 Emacs 標準搭載の Re-Builder という機能を使って、正規表現が一致するか見ることは出来ますが・・・*1 ちょっと例を見てみましょう。 使えない Re-Builder <p name="lemon"> lemon </p> <p name="melon"> melon </p> これの name="" の中身

    Emacs の正規表現の置換・検索 ( RegExp replace or search ) を賢くかわいくしてあげよう - ハトネコエ Web がくしゅうちょう
  • 正規表現を解析して可視化してくれるサイトが凄すぎる件

    ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の

    正規表現を解析して可視化してくれるサイトが凄すぎる件
  • bashの正規表現マッチングの使い方 - adsaria mood

    あるフリーウェアのインストール用bashプログラムを見ていたら次の様なものがあった。(以下の例は簡略化してある。) STRING="abc" if [[ "$STRING" =~ "^ab[cd]$" ]]; then echo "matched" else echo "unmatched" fi if文の条件表現の中に“=~”というオペレータがある。manを見ると =~ オペレータは文字列を正規表現と比較するとある。知らなかった。bashの文字列比較で正規表現が使えるとは。私は正規表現比較が必要な時はgrepに喰わせて判断していたのだが、これを使えば簡単にできる。 ところが、だ。上のプログラムが期待通りに動かない。上の例では =~ の左辺と右辺の正規表現はマッチするはずだが、結果は“unmatched”。色々と正規表現を変えてみたが、どれとしてマッチングしない。しかし、if文を次のように

    bashの正規表現マッチングの使い方 - adsaria mood
    decoy2004
    decoy2004 2014/07/29
    『つまり正規表現全体を""(ダブルクォート)で囲んではいけないのだ。』
  • プログラミング言語における正規表現リテラルの必要性について

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

  • 1