请问怎样取指定字符之间的字呢
xxxx zzz 数量 5 个=》 5请问怎提取 数量与个字符之间的5数量前字符会变,位数也不一样。
wszxf 发表于 2025-5-21 08:27
;;;(get_num "xxxx zzz 数量 5 个"),显示5
;;;(get_num "xxxx zzz 数量 12345 个"),显示12345
;;;(get_ ...
(defun Msubstr(string str1 str2 / n1 n2)
(if(and(=(type string)'str)
(=(type str1)'str)
(=(type str2)'str)
(WCMATCH string(strcat "*"str1"*"str2"*"))
(<(setq n1(+(vl-string-search str1 string)(strlen str1)))
(setq n2(vl-string-search str2 string))))
(substr string (1+ n1)(- n2 n1))
""))
(Msubstr "xxxx zzz 数量 5 个""数量" "个")=>" 5 " 本帖最后由 wszxf 于 2025-5-21 08:31 编辑
;;;(get_num "xxxx zzz 数量 5 个"),显示5
;;;(get_num "xxxx zzz 数量 12345 个"),显示12345
;;;(get_num "xxxx zzz 数量 123456 个大美女"),显示123456
(defun get_num (string / n1 n2)
(setq n1 (vl-string-search "数量" string))
(setq n2 (vl-string-search "个" string))
(atoi (substr string (+ n1 5) (- n2 n1 4)))
)
我的帖子,wCmath子串 wszxf 发表于 2025-5-21 08:27
;;;(get_num "xxxx zzz 数量 5 个"),显示5
;;;(get_num "xxxx zzz 数量 12345 个"),显示12345
;;;(get_ ...
这个不知为什么返回是0的 llsheng_73 发表于 2025-5-21 08:09
(Msubstr "xxxx zzz 数量 5 个""数量" "个")=>" 5 "
可以的,非常感谢
页:
[1]