如何统计字符串中的"\"的个数?
如何统计字符串中的"\"的个数?譬如:"aa\bbb\1\e"
只是统计数量的话很多办法.例如
(setq str "aa\\bbb\\1\\e");字符串中单个斜杠应用双斜杠代替,转义符
(setq num (length (vl-remove-if '(lambda (x) (/= x 92))(vl-string->list str))))
先将字符串转换成ASCII码列表,然后删除所有不是\的元素,剩下的表长度就是\的数量
wyl219 发表于 2019-11-25 22:09
只是统计数量的话很多办法.例如
(setq str "aa\\bbb\\1\\e");字符串中单个斜杠应用双斜杠代替,转义符
要是字符串中就是\而不是\\呢? etoxp 发表于 2019-11-25 22:44
要是字符串中就是\而不是\\呢?
那就别用lisp,用个bat啥的。
一个语言统计自己的转义符,不是跟自己过不去吗。 本帖最后由 wyl219 于 2019-11-26 03:56 编辑
etoxp 发表于 2019-11-25 22:44
要是字符串中就是\而不是\\呢?
\本来就是转义符的标志,比如本来text对象的内容是\1,那么用entget获取到的就是"\\1",所以并没什么影响.
例如
(setq dxf_1 (cdr (assoc 1 (entget (car (entsel))))))
点选一个内容为\1的text对象,cad返回的结果是:
选择对象: "\\1"
而实际上,如果你把字符串定义成"aa\bbb\1\e"的话,如下:
(setq dxf_1 "aa\bbb\1\e")
(setq ed(entget (setq en (car (entsel)))))
(entmod (subst (cons 1 dxf_1) (assoc 1 ed) ed))
该字符串被修改成这个样子
本帖最后由 1291500406 于 2019-11-26 16:33 编辑
etoxp 发表于 2019-11-25 22:44
要是字符串中就是\而不是\\呢?
cad不可能返回值是"aa\bbb\1\e"字符串 (alert "aa\\bbb\\1\\e")(alert "aa\bbb\1\e")
cad不可能有(. .)两个点的表
很多都不可能
就像lisp永远成为不了主流编程语言
页:
[1]