當我有一個像「Test.m」這樣的字符串時,如何才能通過elisp獲得子字符串「Test」?我正在嘗試在我的.emacs
文件中使用它。如何獲得Emacs Lisp中字符串的子字符串?
回答
一種方法是使用substring
(或substring-no-properties
):
(substring "Test.m" 0 -2) => "Test"
(
substring
STRINGFROM&optional
TO)返回一個新字符串,其內容是一子STRING。該 返回的字符串包含指數指數之間的漢字是從 (含)至STRING的(唯一的)。 從和到是 零索引:0表示STRING的第一個字符。 負數值 從的末尾開始計數,STRING。如果到是
nil
,子串運行 到的末尾STRING。
可能是最靈活的選擇(雖然目前還不清楚,如果你需要更大的靈活性)是使用replace-regexp-in-string
:
見章˚Freplace-regexp-in-string
RET
如:
(replace-regexp-in-string "\\..*" "" "Test.m")
在您的特殊情況下,您可能會喜歡使用file-name-sans-extension
。
Stefan's answer是慣用的,當你只需要一個沒有擴展名的文件名。但是,如果您在代碼中大量操作文件和文件路徑,我建議安裝Johan Andersson的f.el
文件和目錄API,因爲它提供了許多Emacs中沒有的功能,並且具有一致的API。檢查出功能f-base
和f-no-ext
:
(f-base "~/doc/index.org") ; => "index"
(f-no-ext "~/doc/index.org") ; => "~/doc/index"
相反,如果你使用字符串經常工作,安裝Magnar Sveen的s.el
出於同樣的原因。你可能在s-chop-suffix
感興趣:
(s-chop-suffix ".org" "~/doc/index.org") ; => "~/doc/index"
對於一般的子檢索使用dkim's answer。
這是一個很好的高級解決方案。謝謝。 – Jabba
- 1. emacs lisp中的字符串匹配匹配任意字符串
- 2. emacs lisp:如果找不到字符串,插入字符串
- 3. 在Emacs Lisp中字符串的列表
- 4. 如何獲得子字符串在iPhone中的字符串?
- 5. 如何獲得的子字符串中
- 6. 如何爲一組字符搜索字符串emacs-lisp
- 7. 如何獲得給定字符串後的子字符串
- 8. 如何從字符串獲得子字符串在Php
- 9. Emacs lisp:評估字符串列表
- 10. 如何從C#中的字符串中獲取字符串的子字符串?
- 11. 獲得長字符串中的特定子字符串
- 12. C#:如何獲得字符串中的字符串的長度[]
- 13. 的Perl:字符串中子字符串或子字符串中
- 14. 如何獲得「括號內」字符串中的字符串?
- 15. 如何檢查Emacs Lisp中的字符串是否爲空?
- 16. 如何將列表轉換爲Emacs Lisp中的字符串
- 17. 如何解碼Emacs Lisp中的字符串?
- 18. 如何從linux中的字符串獲取子字符串?
- 19. 如何從python中的字符串獲取子字符串2
- 20. 如何從ColdFusion中的字符串獲取子字符串
- 21. 如何獲得字符串[地圖<字符串,字符串>的]
- 22. 如何在Emacs Lisp中「URL解碼」一個字符串?
- 23. 從字符串獲取子字符串__
- 24. 如何獲得特定的字符串形式的字符串
- 25. 如何獲得我給出的字符串後的字符串?
- 26. 如何在字符串的特定子字符串之後獲取字符串?
- 27. 如何獲得子串的位置在字符串中批量
- 28. 如何從字符串中獲取子字符串?
- 29. MySQL - 如何從字符串中獲取子字符串表
- 30. 如何獲得字符串後的字符串oracle
非常感謝。 – Peter