我想分割一個字符串使用'拆分字符串'函數的基礎上。字符。但是 (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拆分字符串