以下elisp代码中\\|o+
用法的含义是什么?为什么它与第一个例子不同?
(split-string "ooo" "o+" nil)
;; ("" "")
(split-string "ooo" "\\|o+" nil)
;; ("" "o" "o" "o" "")
答案 0 :(得分:1)
"\\|"
指定两侧表达式之间的替代方法,因此正则表达式"\\|o+"
匹配空字符串,或者一个或多个" o" s。
在您的第一个示例中,您已经返回了由三个" o" s分隔的两个空字符串。
在第二个示例中,空字符串分隔符匹配输入中的每个字符,因此每个字符都单独返回。