サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
yhash.hatenablog.com
elispの正規表現はむずかしい 残念なことにelispには正規表現リテラルが存在しないため、関数やコマンドに正規表現を渡すためには文字列として渡す必要がある。 他の言語の正規表現と同様、elispの正規表現でもバックスラッシュを含むメタ文字("\w"とかグルーピング用の"\("とか)が多用されるワケだけど、文字列中ではこれらのメタ文字に含まれるバックスラッシュをエスケープ文字として処理しなければならない。 たとえば、正規表現"\(\w.\)"を文字列で表現するためには"\\(\\w*\\)"と書く必要があり、ただでさえ読みにくく書きにくい正規表現が大量のバックスラッシュにより暗号のようになってしまう。テキスト処理がメインの言語のはずなのに... re-builderで対話的に正規表現を書く ただ、るびきちさんの本にも書かれている通り正規表現を少しでもラクに書くためのworkaroundは
interactiveスペシャルフォームでコマンドを宣言 M-x ...でユーザがコマンドとして呼び出す関数を定義するには、関数定義の頭で(interactive)と宣言をすればよい。 この時、英数字1文字をinteractiveの引数として渡すと、ユーザーに指定したフォーマットで入力を要求するコマンドを作成できる(find-fileコマンドでファイル名の入力を要求されるのと同様)。 英数字1字に続く文字列は、コマンド実行時にミニバッファに表示されるプロンプト文字列となる。 また、ユーザー入力はその関数の引数として扱われる。 interactiveフォームに渡せる文字種と、対応する入力の種類は次の通り: b 既存バッファ名 B バッファ名(新規含む) d ディレクトリ名 f 既存ファイル名 F ファイル名(新規含む) n 数値 s 文字列 r リージョン 練習コード 以上!
このページを最初にブックマークしてみませんか?
『yhash.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く