我想分割一个字符串使用'拆分字符串'函数的基础上。字符。但是 (split-string "1.2.3" ".")
根本不起作用。它只是返回一个可变数量的空字符串列表。是。需要以某种不同的方式逃脱或指定的特殊字符?Elisp拆分字符串函数来拆分字符串。字符
16
A
回答
23
这里是分割字符串函数的官方文档 - http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Creating-Strings。
(split-string "1.2.3" "\.")
中的分割字符串函数的第二个参数是一个正则表达式,因此'。'字符和'\'字符有特殊的含义。所以 '。'角色需要被转义,甚至'\'角色需要被另一个'\'转义。 (split-string "1.2.3" "\\.")
将按预期正常工作。
7
如果你调用describe-function
上split-string
,通常按F1˚Fsplit-string
输入,您可以在文档中看到,第二个参数是不只是一个角色,而是一个正则表达式:
如果SEPARATORS不是零,它应该是一个正则表达式匹配的文本,它可以区分但不是子串的一部分。如果nil缺省为'split-string-default-separators',通常为“[\ f \ t \ n \ r \ v] +”,并且OMIT-NULLS被强制为t。
虽然对于大多数简单的字符串操作的Emacs内置的功能足够了,当你使用字符串操作巨资elisp的代码,s.el
第三方库是必不可少的。您可以通过运行命令package-install
和s
作为软件包名称,通过Emacs软件包管理器进行安装。假设你在几个模块中都有多个函数,所有这些模块都是用字符串做的,比如加入,分割,大写,比较,修剪空白等等。这是有道理的有在一个共同的名字空间所有的字符串相关的功能,所以s.el
的替代内置split-string
将s-split
:
(s-split "\\." "1.2.3") ; ("1" "2" "3")
例如,如果您需要转换字符串" 1-2-3 "
到"3.2.1"
,你可写:
(s-reverse (s-join "." (s-split "-" (s-trim z))))
相关问题
- 1. C#拆分字符串 - 将字符串拆分为数组
- 2. 使用字符串作为分隔符来拆分字符串
- 3. 将字符串拆分为字符串
- 4. 将字符串拆分为字符串
- 5. 从字符串拆分字符串
- 6. 拆分字符串在字
- 7. 拆分字符串数组
- 8. 拆分整数字符串
- 9. 基于字符拆分字符串
- 10. 将lua字符串拆分为字符
- 11. 拆分字符串每n个字符
- 12. tsql函数拆分字符串
- 13. 拆分字符串但分隔符
- 14. PHP拆分字符串
- 15. Python字符串拆分
- 16. Python字符串拆分
- 17. ArrayIndexOutOfBoundsException在拆分字符串
- 18. 拆分后的字符串
- 19. 提升拆分字符串
- 20. 如何拆分字符串?
- 21. Cocoa-Touch字符串拆分
- 22. 拆分字符串在python
- 23. PHP拆分字符串
- 24. Python的字符串拆分
- 25. 字符串拆分问题
- 26. 如何拆分字符串?
- 27. 拆分一个字符串
- 28. Python字符串拆分
- 29. 将字符串拆分为“|”
- 30. 拆分字符串值c#