TemporaryCAD 发表于 2022-7-30 02:55:16

将子字符串列表与字符串进行

将子字符串列表与字符串进行比较并返回唯一输出的最快方法?


在高层次上: 我有一个永久子字符串的列表,我需要根据它们检查字符串以查看子字符串是否包含在字符串中。我无法修改将针对它们进行检查的字符串。每个字符串只需要匹配一个子字符串,不会有重叠。    即给定子字符串dog、quartz、wizard、zebra的列表:代码应该返回以下输出 “敏捷的棕色狐狸跳过一条懒惰的狗。” -> 与“狗”比较 -> 返回“1” “黑色石英狮身人面像,判断我的誓言。” -> 与“石英”比较 -> 返回“2” “五位拳师快速跳跃。” -> 与“向导”比较 -> 返回“3” “愚蠢的斑马跳得真快!” -> 与“Zebra”比较 -> 返回“4” “天哪,我对词典学的快速学习得了奖!” -> 找不到匹配的子字符串 -> 返回“5” 现在,我正在这样做,我认为这是一件非常糟糕的事情:<font size="4">(defun tagmap(input)
(setq input (strcase input))
(COND
    ((/= (vl-string-search "TEST1" input) nil)
      (princ "1"))
    ((/= (vl-string-search "TEST2" input) nil)
      (princ "2"))

      [...]

    ((/= (vl-string-search "TESTN" input) nil)
      (princ "N"))
    (T (princ "String not found"))
)
)</font>

将来这个列表可能会大大扩展,所以我正在寻找一个更具可扩展性的解决方案。有没有人有更快的方法?
页: [1]
查看完整版本: 将子字符串列表与字符串进行