`string-split'函数中'\\ | o +'的含义是什么?

时间:2014-11-23 06:30:12

标签: regex elisp

以下elisp代码中\\|o+用法的含义是什么?为什么它与第一个例子不同?​​

(split-string "ooo" "o+" nil)
;; ("" "")

(split-string "ooo" "\\|o+" nil)
;; ("" "o" "o" "o" "")

1 个答案:

答案 0 :(得分:1)

"\\|"指定两侧表达式之间的替代方法,因此正则表达式"\\|o+"匹配空字符串,或者一个或多个" o" s。

在您的第一个示例中,您已经返回了由三个" o" s分隔的两个空字符串。

在第二个示例中,空字符串分隔符匹配输入中的每个字符,因此每个字符都单独返回。