当我有一个像“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