- 1 名前:デフォルトの名無しさん [2007/10/09(火) 05:39:53 ]
- Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。 単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。 過去スレ Emacs Lisp pc2.2ch.net/test/read.cgi/tech/1004551074/ Emacs Lisp 2 pc11.2ch.net/test/read.cgi/tech/1068467385/ 関連スレ Emacs part 22 pc11.2ch.net/test/read.cgi/unix/1180828013/ 【叩かれて】Emacs Lisp道場【強くなれ】 pc11.2ch.net/test/read.cgi/unix/1063880951/ Lisp Scheme Part18 pc11.2ch.net/test/read.cgi/tech/1186922295/
- 746 名前:デフォルトの名無しさん [2012/03/21(水) 23:49:54.13 ]
- deを含まないabcを探索したいのですが、以下でうまくいきません。
もしかして、emacs lispで「?!」は使えないのでしょうか? (re-search-forward ”abc(?!de)” nil t)
- 747 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:16:43.92 ]
- Infoぐらい読もう。
(info "(elisp)Syntax of Regexps")
- 748 名前:746 mailto:sage [2012/03/22(木) 01:07:53.55 ]
- >>747
special charactersに「!」が含まれていないので、 使えないという理解でいいんですよね? うーん、書くのが面倒くさくなるなあ。
- 749 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 02:16:32.52 ]
- >>746
バックスラッシュが括弧に必要
- 750 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:31:18.61 ]
- >>749
拡張正規表現の話だぞ。
- 751 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 13:49:33.36 ]
- >>750
すまん。Emacsに先読みが無いことに今気がついた。 普通は後続の正規表現を指定するか、単語境界いれるからあんまり使わないんだよね
- 752 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 16:17:30.37 ]
- elispは拡張正規表現をサポートしていない。
代替するとこんな感じか?わっかりにっきーな (re-search-forward "abc[^d]\\|abcd[^e]\\|abc$\\|abcd$")
- 753 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 21:46:10.19 ]
- >>752
「拡張正規表現」の定義によりますよ。
- 754 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:06:24.54 ]
- 言いたいことあるなら中身まで言えば良いのに
- 755 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:12:46.02 ]
- >>750
emacsの正規表現でグループ化するには(をエスケープして\(としてやらないといけない しかし単に"\("と書いてはいけない。 "\("が文字列として評価され(になり、その(が正規表現に渡されてとして評価される 正規表現に\(を渡したい時は文字列"\\("としないといけない
- 756 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:15:18.09 ]
- >>755
エスケープはわかったからさ。>>746の > deを含まないabcを探索したいのですが これをemacsの正規表現で書いてくれや。
- 757 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:36:29.29 ]
- サーセン
- 758 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:24:07.87 ]
- >>756
>>753
- 759 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:20:20.63 ]
- ?
emacsの正規表現って定義あるよね?
- 760 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:21:27.61 ]
- Perl/Ruby/Python/TclとかにあるNegative lookahead (?!re)はemacs lispには無いはず。
emacs24とかは知らんが。 abc(?!de)は、"abcxxxx" の最初の "abc" とマッチするんだよね。 >>752のは "abcx"とマッチすることになるから微妙に違ってくる。 emacs lispでは、ひとつの正規表現だけでは、これと同じことはできないんじゃないの?
- 761 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:31:35.63 ]
- vim なら abc\(de\)\@! でできる。
Emacs の正規表現の貧弱さにはいつもイライラする。
- 762 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 05:17:04.56 ]
- 鬼車導入と新たな正規表現リテラルの導入かねやっぱり
- 763 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 10:03:06.08 ]
- 今更エンジン変更とか新しくPEG導入するよかコストかかりそう
- 764 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 13:45:33.85 ]
- 正規表現をPCREに変えろという話が本家で出ては消え、出ては消え・・・
本気で変えたいんならレキシカルスコープ変数やった人みたいに、 専用ブランチ作ってマージして、互換性の問題などを検証してみんなを納得させないといけない。 PEGはもういくつか実装あるような希ガス
- 765 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 15:24:09.42 ]
- ELisp の場合、正規表現を特別扱いするような文法はないから、単に新しい関数群を導入すれば互換性は壊さずに済むよ。
pcre-search-forward や pcre-match-string みたいな。
- 766 名前:デフォルトの名無しさん [2012/03/24(土) 19:29:57.02 ]
- 以下の設定で、open -gとしてバックグランドで開きたいのですが、どのように書けば"-g"オプションを渡せますか?
(setq browse-url-generic-program "/usr/bin/open")
- 767 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 19:39:48.53 ]
- browse-url-generic-args ってそれ指定するための変数じゃねーの?しらんけど
- 768 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 20:04:29.09 ]
- >>767
(setq browse-url-generic-args (list "-g"))) でうまく行きました。ありがとうございます。
|

|