我是一名从事elisp开发的IT技术人员,目前遇到一个问题:我有一个字符串,它表示一个项目列表。这个字符串看起来像这样:
"apple orange 'tasty things' 'my lunch' zucchini 'my dinner'"
我正在尝试将其分割为
("apple" "orange" "tasty things" "my lunch" "zucchini" "my dinner")
这是一个常见的问题。我解决它的障碍与正则表达式无关,而是与elisp的具体细节有关。我想做的是像这样运行一个循环:
``` (while (< (length my-string) 0) do-work) ```
其中
do-work
是:- 将正则表达式
\('[^']*?'\|[[:alnum:]]+)\([[:space:]]*\(.+\)
应用于my-string
- 将\1
添加到我的结果列表中
- 将my-string
重新绑定为\2
然而,我无法弄清楚如何让split-string
或replace-regexp-in-string
这样做。我该如何将此字符串拆分为可用的值?
(或者:“我还没有找到哪个内置的emacs函数可以实现这个?”)
split-string-and-unquote
基本上可以做到这一点,但我无法使其同时处理单引号...嗯。 - Commander Coriander Salamander