我想分割一个字符串使用'拆分字符串'函数的基础上。字符。但是 (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. 按字符数拆分字符串而不拆分单词
- 11. 拆分字符串与拆分方法
- 12. 拆分字符串没有拆分器
- 13. 将lua字符串拆分为字符
- 14. php将字符串拆分为字符
- 15. PatternSyntaxException将字符串拆分为“*”字符
- 16. 拆分字符串每n个字符
- 17. 基于字符拆分字符串
- 18. tsql函数拆分字符串
- 19. T-SQL - 拆分字符串函数
- 20. 使用拆分将字符串拆分为2个字符组?
- 21. 拆分字符串但分隔符
- 22. 拆分字符串Teradata SQL
- 23. 拆分长字符串WP7
- 24. 字符串拆分比较
- 25. Python字符串拆分
- 26. MDX拆分字符串?
- 27. ERStudio宏字符串拆分
- 28. .NET字符串拆分()
- 29. 打印拆分字符串
- 30. PHP拆分字符串