434939575 发表于 2025-1-1 14:53:02

所有字符串表A 参考字符串B, A中包含B元素的归类

(defun c:tt ()
(setqall (list "aa11" "aa22""bb11" "bb22" "cc" "dd""ee" "ff" "gg"
      "hh" "ii")
)
(setq key (list "aa" "bb" "kk"))
(setq all-app ())
(setq app ())
(foreach n key
    (mapcar '(lambda (x)
         (if (vl-string-search n x)
   (setq app (cons x app))
         )
       )
      all
    )
    (ifapp
      (setq all-app (append all-app (list (reverse app))))
    )
    (setq app ())
)
all-app
);;(("aa11" "aa22") ("bb11" "bb22"))


你有种再说一遍 发表于 2025-1-1 20:04:41

那么猛,直接O(n^2),不如调用VBA字典

434939575 发表于 2025-1-1 21:14:30

你有种再说一遍 发表于 2025-1-1 20:04
那么猛,直接O(n^2),不如调用VBA字典

VBA不会玩:P-

ynhh 发表于 2025-1-1 23:32:39

看上去很好
不知用在什么地方
谢谢

434939575 发表于 2025-1-2 08:57:08

ynhh 发表于 2025-1-1 23:32
看上去很好
不知用在什么地方
谢谢

我是用于过滤电话号码😁😁

tryhi 发表于 2025-1-2 09:48:53

一行代码应该就够了
(setqall (list "aa11" "aa22""bb11" "bb22" "cc" "dd""ee" "ff" "gg" "hh" "ii"))
(setq key (list "aa" "bb" "kk"))
(vl-remove nil(mapcar '(lambda(x)(vl-remove-if-not '(lambda(y)(vl-string-search x y))all))key))

434939575 发表于 2025-1-2 10:13:50

tryhi 发表于 2025-1-2 09:48
一行代码应该就够了
(setqall (list "aa11" "aa22""bb11" "bb22" "cc" "dd""ee" "ff" "gg" "hh" "ii ...

感谢大佬,这个确实厉害
页: [1]
查看完整版本: 所有字符串表A 参考字符串B, A中包含B元素的归类