19

「Test.m」のような文字列がある場合、elispを介してそのサブ文字列「Test」だけを取得するにはどうすればよいですか?私は自分の.emacsファイルでこれを使おうとしています。

4

4 に答える 4

34

1つの方法は、substring(またはsubstring-no-properties)を使用することです:

(substring "Test.m" 0 -2) => "Test"

( substring STRING FROM &optional TO )

STRINGの部分文字列を内容とする新しい文字列を返します。返される文字列は、STRINGのインデックスFROM (含む) とインデックスTO (含まない) の間の文字で構成されます。 FROMTOはゼロインデックスです: 0 はSTRINGの最初の文字を意味します。 負の値はSTRINGの末尾からカウントされます。TOがの 場合、部分文字列はSTRINGの末尾まで実行されます。nil

于 2012-09-05T04:49:11.003 に答える
8

あなたの特定のケースでは、を使用したいかもしれませんfile-name-sans-extension

于 2012-09-05T15:13:52.917 に答える
4

おそらく最も柔軟なオプション (柔軟性が必要かどうかは明確ではありませんが) は、次を使用することreplace-regexp-in-stringです。

見るC-hf replace-regexp-in-string RET

例えば:

(replace-regexp-in-string "\\..*" "" "Test.m")
于 2012-09-05T04:57:31.953 に答える