[xyzzy:08956] Re: リストから取得した要素について
- Subject: [xyzzy:08956] Re: リストから取得した要素について
- From: Yoshitaka Nishiguti <pocari@xxxxxxxxxxxxxxx>
- X-mailer: Becky! ver. 2.05.10
こんばんは、つるりんさん。西口です。
On Mon, 10 Nov 2003 23:56:38 +0900 (JST)
Kataoka Yumi <tu93a@xxxxxxxxxxx> wrote:
> (string-match "\.txt$" b-name)
> と言う関数を教えていただきました。
すいません。私ウソ言ってました。
;間違い
(string-match "\.txt$" "boootxt")
=> 3
;こっちが正解
(string-match "\\.txt$" "bootxt")
=> nil
(string-match "\\.txt$" "boo.txt")
=> 3
(string-match "\.txt$" str)
だと、
[任意の文字]txt
で終わる文字にマッチしちゃいますね。
正しくは
(string-match "\\.txt$" str)
です。
> string-match でマッチする index 番目を取得した後、
> その index をいかして文字列を取得する方法はあるのでしょ
> うか?
indexをいかしてませんが、
上記の(string-match)の正規表現をちょっといじって
;;拡張子cppをhに変える
(setq full-path "d:/hoge/hoge.d/hoge.cpp")
=> "d:/hoge/hoge.d/hoge.cpp"
(string-match "\\(.*\\)\\.cpp$" full-path)
=> 0
(string-replace-match full-path "\\1.h")
=> "d:/hoge/hoge.d/hoge.h"
とか。
string-replace-matchはstring-matchの直後に使ってください。