AutoLisp 返回字符串中某一子串首次出现的位置的函数
Posted 钉钉铛铛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AutoLisp 返回字符串中某一子串首次出现的位置的函数相关的知识,希望对你有一定的参考价值。
1 ;返回字符串中某一子串首次出现的位置 2 (defun my_strstr(mstr zstr / retu) 3 (setq mstr_l (strlen mstr) zstr_l (strlen zstr)) 4 (if (<= zstr_l mstr_l) 5 ;主字符串长度大于或等于子字符长度 6 (progn 7 (setq i 1) 8 (setq tc_w1 T) ;退出循环时使用 9 (setq ppqk nil) ;表示匹配情况 10 (while (and tc_w1 (<= i (+ 1 (- mstr_l zstr_l)))) 11 (setq j 1) 12 (setq tc_w2 T) ;退出循环时使用 13 14 ;对子串的每一个字符逐一比较 15 (while (and tc_w2 (<= j zstr_l)) 16 (if (= (substr mstr (+ i (- j 1)) 1) (substr zstr j 1)) 17 (setq j (+ j 1)) 18 (setq tc_w2 nil) 19 20 ) 21 ) 22 (if (= j (+ 1 zstr_l)) 23 (progn (setq tc_w1 nil ppqk i)) 24 (setq i (+ 1 i)) 25 ) 26 27 ) 28 (setq retu ppqk) 29 30 ) 31 32 ;否则 33 (setq retu nil) 34 35 ) 36 37 ) 38 39 40 (print (strstr "ABCDEFG" "EFG"))
以上是关于AutoLisp 返回字符串中某一子串首次出现的位置的函数的主要内容,如果未能解决你的问题,请参考以下文章
JS验证字符串是否以某一子串结尾,验证字符串是否以某一子串开始
2021-11-13:至少有 K 个重复字符的最长子串。给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。提示:1(